summaryrefslogtreecommitdiff
path: root/tests/test_django.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_django.py')
-rw-r--r--tests/test_django.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/tests/test_django.py b/tests/test_django.py
index b5c4a9c..5fff8a9 100644
--- a/tests/test_django.py
+++ b/tests/test_django.py
@@ -4,7 +4,7 @@
import unittest
-from semantic_version import Version, NativeSpec
+from semantic_version import Version, SimpleSpec, NpmSpec
from .setup_django import django_loaded
@@ -64,25 +64,29 @@ class DjangoFieldTestCase(unittest.TestCase):
obj = models.VersionModel(
version=Version('0.1.1'),
spec=SimpleSpec('==0.1.1,!=0.1.1-alpha'),
+ npm_spec=NpmSpec('1.2 - 2.3'),
)
self.assertEqual(Version('0.1.1'), obj.version)
self.assertEqual(SimpleSpec('==0.1.1,!=0.1.1-alpha'), obj.spec)
+ self.assertEqual(NpmSpec('1.2 - 2.3'), obj.npm_spec)
- alt_obj = models.VersionModel(version=obj.version, spec=obj.spec)
+ alt_obj = models.VersionModel(version=obj.version, spec=obj.spec, npm_spec=obj.npm_spec)
self.assertEqual(Version('0.1.1'), alt_obj.version)
self.assertEqual(SimpleSpec('==0.1.1,!=0.1.1-alpha'), alt_obj.spec)
self.assertEqual(obj.spec, alt_obj.spec)
+ self.assertEqual(obj.npm_spec, alt_obj.npm_spec)
self.assertEqual(obj.version, alt_obj.version)
def test_version_clean(self):
"""Calling .full_clean() should convert str to Version/Spec objects."""
- obj = models.VersionModel(version='0.1.1', spec='==0.1.1,!=0.1.1-alpha')
+ obj = models.VersionModel(version='0.1.1', spec='==0.1.1,!=0.1.1-alpha', npm_spec='1.x')
obj.full_clean()
self.assertEqual(Version('0.1.1'), obj.version)
self.assertEqual(SimpleSpec('==0.1.1,!=0.1.1-alpha'), obj.spec)
+ self.assertEqual(NpmSpec('1.x'), obj.npm_spec)
def test_version_save(self):
"""Test saving object with a VersionField."""
@@ -166,10 +170,12 @@ class DjangoFieldTestCase(unittest.TestCase):
o1 = models.VersionModel(
version=Version('0.1.1'),
spec=SimpleSpec('==0.1.1,!=0.1.1-alpha'),
+ npm_spec=NpmSpec('1.2 - 2.3'),
)
o2 = models.VersionModel(
version=Version('0.4.3-rc3+build3'),
spec=SimpleSpec('<=0.1.1-rc2,!=0.1.1-rc1'),
+ npm_spec=NpmSpec('1.2 - 2.3'),
)
data = serializers.serialize('json', [o1, o2])
@@ -177,8 +183,10 @@ class DjangoFieldTestCase(unittest.TestCase):
obj1, obj2 = serializers.deserialize('json', data)
self.assertEqual(o1.version, obj1.object.version)
self.assertEqual(o1.spec, obj1.object.spec)
+ self.assertEqual(o1.npm_spec, obj1.object.npm_spec)
self.assertEqual(o2.version, obj2.object.version)
self.assertEqual(o2.spec, obj2.object.spec)
+ self.assertEqual(o2.npm_spec, obj2.object.npm_spec)
def test_serialization_partial(self):
o1 = models.PartialVersionModel(
@@ -220,6 +228,11 @@ class FieldMigrationTests(DjangoTestCase):
expected = {'max_length': 200}
self.assertEqual(field.deconstruct()[3], expected)
+ def test_nondefault_spec_field(self):
+ field = django_fields.SpecField(syntax='npm')
+ expected = {'max_length': 200, 'syntax': 'npm'}
+ self.assertEqual(field.deconstruct()[3], expected)
+
@unittest.skipIf(not django_loaded, "Django not installed")
class FullMigrateTests(TransactionTestCase):