Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion data/SPDXRdfExample.rdf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<creator>Person: Gary O'Neall</creator>
</CreationInfo>
</creationInfo>
<specVersion>SPDX-1.2</specVersion>
<specVersion>SPDX-2.1</specVersion>
<referencesFile>
<File rdf:nodeID="A0">
<licenseConcluded>
Expand Down
2 changes: 1 addition & 1 deletion data/SPDXSimpleTag.tag
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Document info
SPDXVersion: SPDX-1.2
SPDXVersion: SPDX-2.1
DataLicense: CC0-1.0
DocumentComment: <text>Sample Comment</text>

Expand Down
2 changes: 1 addition & 1 deletion data/SPDXTagExample.tag
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SPDXVersion: SPDX-1.2
SPDXVersion: SPDX-2.1
DataLicense: CC0-1.0
DocumentComment: <text>This is a sample spreadsheet</text>

Expand Down
5 changes: 0 additions & 5 deletions spdx/parsers/builderexceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@ class BuilderException(Exception):
pass


class IncompatibleVersionError(BuilderException):
def __init__(self, msg):
self.msg = msg


class CardinalityError(BuilderException):
def __init__(self, msg):
self.msg = msg
Expand Down
15 changes: 3 additions & 12 deletions spdx/parsers/rdfbuilders.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
from spdx import document
from spdx import version
from spdx.parsers.builderexceptions import CardinalityError
from spdx.parsers.builderexceptions import IncompatibleVersionError
from spdx.parsers.builderexceptions import OrderError
from spdx.parsers.builderexceptions import SPDXValueError
from spdx.parsers import tagvaluebuilders
Expand All @@ -39,24 +38,16 @@ def set_doc_version(self, doc, value):
Raise exceptions:
- SPDXValueError if malformed value,
- CardinalityError if already defined,
- IncompatibleVersionError if not 1.2.
"""
# FIXME: relax version supported
if not self.doc_version_set:
self.doc_version_set = True
m = self.VERS_STR_REGEX.match(value)
if m is None:
raise SPDXValueError('Document::Version')
else:
vers = version.Version(major=int(m.group(1)),
minor=int(m.group(2)))

# FIXME: we can deal with newer versions too
if vers == version.Version(major=1, minor=2):
doc.version = vers
return True
else:
raise IncompatibleVersionError(value)
doc.version = version.Version(major=int(m.group(1)),
minor=int(m.group(2)))
return True
else:
raise CardinalityError('Document::Version')

Expand Down
5 changes: 0 additions & 5 deletions spdx/parsers/tagvalue.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
from spdx.parsers.builderexceptions import CardinalityError
from spdx.parsers.builderexceptions import OrderError
from spdx.parsers.builderexceptions import SPDXValueError
from spdx.parsers.builderexceptions import IncompatibleVersionError
from spdx.parsers.lexers.tagvalue import Lexer
from spdx import document

Expand Down Expand Up @@ -1113,10 +1112,6 @@ def p_spdx_version_1(self, p):
self.error = True
msg = ERROR_MESSAGES['DOC_VERSION_VALUE'].format(p[2], p.lineno(1))
self.logger.log(msg)
except IncompatibleVersionError:
self.error = True
self.logger.log(
'SPDXVersion must be SPDX-1.2 found {0}.'.format(value))

def p_spdx_version_2(self, p):
"""spdx_version : DOC_VERSION error"""
Expand Down
14 changes: 4 additions & 10 deletions spdx/parsers/tagvaluebuilders.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
from spdx.parsers.builderexceptions import CardinalityError
from spdx.parsers.builderexceptions import OrderError
from spdx.parsers.builderexceptions import SPDXValueError
from spdx.parsers.builderexceptions import IncompatibleVersionError
from spdx.parsers import validations


Expand Down Expand Up @@ -74,22 +73,17 @@ def set_doc_version(self, doc, value):
"""
Set the document version.
Raise SPDXValueError if malformed value, CardinalityError
if already defined, IncompatibleVersionError v
if already defined
"""
# FIXME: we support other versions!!!
if not self.doc_version_set:
self.doc_version_set = True
m = self.VERS_STR_REGEX.match(value)
if m is None:
raise SPDXValueError('Document::Version')
else:
vers = version.Version(major=int(m.group(1)),
minor=int(m.group(2)))
if vers == version.Version(major=1, minor=2):
doc.version = vers
return True
else:
raise IncompatibleVersionError(value)
doc.version = version.Version(major=int(m.group(1)),
minor=int(m.group(2)))
return True
else:
raise CardinalityError('Document::Version')

Expand Down
2 changes: 1 addition & 1 deletion spdx/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class Version(object):
"""
VERS_STR_REGEX = re.compile(r'(\d+)\.(\d+)')

def __init__(self, major=1, minor=2):
def __init__(self, major, minor):
self.major = major
self.minor = minor

Expand Down
15 changes: 5 additions & 10 deletions tests/test_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,25 +31,20 @@ def setUp(self):
self.builder = builders.DocBuilder()

def test_correct_version(self):
version_str = 'SPDX-1.2'
version_str = 'SPDX-2.1'
self.builder.set_doc_version(self.document, version_str)
assert (self.document.version.major == 1 and
self.document.version.minor == 2)
assert (self.document.version.major == 2 and
self.document.version.minor == 1)

@testing_utils.raises(builders.CardinalityError)
def test_version_cardinality(self):
version_str = 'SPDX-1.2'
version_str = 'SPDX-2.1'
self.builder.set_doc_version(self.document, version_str)
self.builder.set_doc_version(self.document, version_str)

@testing_utils.raises(builders.SPDXValueError)
def test_version_value(self):
version_str = '1.2'
self.builder.set_doc_version(self.document, version_str)

@testing_utils.raises(builders.IncompatibleVersionError)
def test_version_number(self):
version_str = 'SPDX-2.0'
version_str = '2.1'
self.builder.set_doc_version(self.document, version_str)

def test_correct_data_lics(self):
Expand Down
10 changes: 5 additions & 5 deletions tests/test_document.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@
class TestVersion(TestCase):

def test_creation(self):
v = Version(major=1, minor=2)
assert v.major == 1
assert v.minor == 2
v = Version(major=2, minor=1)
assert v.major == 2
assert v.minor == 1

def test_comparison(self):
v1 = Version(major=1, minor=2)
Expand All @@ -57,12 +57,12 @@ class TestDocument(TestCase):

def test_creation(self):
document = Document(
version=Version(major=1, minor=2),
version=Version(major=2, minor=1),
data_license=License(full_name='Academic Free License v1.1',
identifier='AFL-1.1')
)
assert document.comment is None
assert document.version == Version(1, 2)
assert document.version == Version(2, 1)
assert document.data_license.identifier == 'AFL-1.1'

def test_document_validate_failures_returns_informative_messages(self):
Expand Down
8 changes: 4 additions & 4 deletions tests/test_tag_value_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@ def setUp(self):

def test_document(self):
data = '''
SPDXVersion: SPDX-1.2
SPDXVersion: SPDX-2.1
# Comment.
DataLicense: CC0-1.0
DocumentComment: <text>This is a sample spreadsheet</text>
'''
self.l.input(data)
self.token_assert_helper(self.l.token(), 'DOC_VERSION', 'SPDXVersion', 2)
self.token_assert_helper(self.l.token(), 'LINE', 'SPDX-1.2', 2)
self.token_assert_helper(self.l.token(), 'LINE', 'SPDX-2.1', 2)
self.token_assert_helper(self.l.token(), 'DOC_LICENSE', 'DataLicense', 4)
self.token_assert_helper(self.l.token(), 'LINE', 'CC0-1.0', 4)
self.token_assert_helper(self.l.token(), 'DOC_COMMENT', 'DocumentComment', 5)
Expand Down Expand Up @@ -103,7 +103,7 @@ def token_assert_helper(self, token, ttype, value, line):
class TestParser(TestCase):

document_str = '\n'.join([
'SPDXVersion: SPDX-1.2',
'SPDXVersion: SPDX-2.1',
'DataLicense: CC0-1.0',
'DocumentComment: <text>Sample Comment</text>'
])
Expand Down Expand Up @@ -167,7 +167,7 @@ def test_doc(self):
document, error = self.p.parse(self.complete_str)
assert document is not None
assert not error
assert document.version == Version(major=1, minor=2)
assert document.version == Version(major=2, minor=1)
assert document.data_license.identifier == 'CC0-1.0'
assert document.comment == 'Sample Comment'

Expand Down