Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/toolkit/spec.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/toolkit/spec.py')
-rwxr-xr-xtests/units/toolkit/spec.py154
1 files changed, 57 insertions, 97 deletions
diff --git a/tests/units/toolkit/spec.py b/tests/units/toolkit/spec.py
index 89d04b3..7c7188e 100755
--- a/tests/units/toolkit/spec.py
+++ b/tests/units/toolkit/spec.py
@@ -10,58 +10,23 @@ from sugar_network.toolkit import spec
class SpecTest(tests.Test):
- def test_Dependency_versions_range(self):
- self.assertEqual(
- [],
- [i for i in spec._Dependency().versions_range()])
- self.assertEqual(
- [],
- [i for i in spec._Dependency({'restrictions': []}).versions_range()])
- self.assertEqual(
- [],
- [i for i in spec._Dependency({'restrictions': [(None, '2')]}).versions_range()])
- self.assertEqual(
- ['1'],
- [i for i in spec._Dependency({'restrictions': [('1', None)]}).versions_range()])
- self.assertEqual(
- ['1'],
- [i for i in spec._Dependency({'restrictions': [('1', '2')]}).versions_range()])
- self.assertEqual(
- ['1.2'],
- [i for i in spec._Dependency({'restrictions': [('1.2', '1.2.999')]}).versions_range()])
- self.assertEqual(
- ['1.2', '1.3'],
- [i for i in spec._Dependency({'restrictions': [('1.2', '1.4')]}).versions_range()])
- self.assertEqual(
- ['1.2.3', '1.3'],
- [i for i in spec._Dependency({'restrictions': [('1.2.3', '1.4')]}).versions_range()])
- self.assertEqual(
- ['1.2', '1.3', '1.4'],
- [i for i in spec._Dependency({'restrictions': [('1.2', '1.4.5')]}).versions_range()])
-
def test_parse_requires(self):
- self.assertEqual(
- {'a': {}, 'b': {}, 'c': {}},
- spec.parse_requires('a; b; c'))
-
- self.assertEqual(
- {
- 'a': {'restrictions': [('1', '2')]},
- 'b': {'restrictions': [('1.2', '1.3')]},
- 'c': {'restrictions': [('2.2', None)]},
- 'd': {'restrictions': [(None, '3')]},
- 'e': {'restrictions': [('5', None)]},
- 'f': {'restrictions': [(None, '6')]},
- },
- spec.parse_requires('a = 1; b=1.2; c>= 2.2; d <3-3; e > 4; f<=5'))
-
- self.assertEqual(
- {
- 'a': {'importance': 'recommended'},
- 'b': {},
- 'c': {'importance': 'recommended', 'restrictions': [(None, '1')]},
- },
- spec.parse_requires('[a]; b; [c<1]'))
+ self.assertEqual({
+ 'a': [],
+ 'b': [],
+ 'c': [],
+ },
+ spec.parse_requires('a; b; c'))
+
+ self.assertEqual({
+ 'a': [([0], [[1], 0])],
+ 'b': [([0], [[1, 2], 0])],
+ 'c': [([1, 0], [[2, 2, 2], 0])],
+ 'd': [([-1], [[3], 0])],
+ 'e': [([1], [[4], 0])],
+ 'f': [([-1, 0], [[5], 0])],
+ },
+ spec.parse_requires('a = 1; b==1.2; c>= 2.2.2; d <3-rc1; e > 4; f<=5'))
def test_parse_bindings(self):
self.assertEqual(
@@ -114,19 +79,12 @@ class SpecTest(tests.Test):
self.assertEqual(['terminal', 'console'], recipe['tags'])
self.assertEqual(['image/png', 'image/svg+xml'], recipe['mime_types'])
self.assertEqual(
- {
- 'activity': {
- 'exec': 'sugar-activity terminal.TerminalActivity',
- },
- },
- recipe.commands)
- self.assertEqual(
- {
- 'sugar': {
- 'restrictions': [('0.94', '0.95')],
- },
- },
- recipe.requires)
+ 'sugar-activity terminal.TerminalActivity',
+ recipe.command)
+ self.assertEqual({
+ 'sugar': [([0], [[0, 94], 0])],
+ },
+ recipe.requires)
def test_parse_version(self):
@@ -179,39 +137,41 @@ class SpecTest(tests.Test):
def test_parse_version_IgnoreErrors(self):
self.assertEqual([[1, 2], 0], spec.parse_version('1.2foo', ignore_errors=True))
- def test_ensure_requires(self):
- assert spec.ensure_requires(spec.parse_requires(''), spec.parse_requires(''))
-
- assert not spec.ensure_requires(spec.parse_requires(''), spec.parse_requires('d1'))
- assert spec.ensure_requires(spec.parse_requires('d1'), spec.parse_requires(''))
- assert spec.ensure_requires(spec.parse_requires('d1'), spec.parse_requires('d1'))
-
- assert not spec.ensure_requires(spec.parse_requires(''), spec.parse_requires('d1; d2'))
- assert spec.ensure_requires(spec.parse_requires('d1; d2'), spec.parse_requires(''))
- assert not spec.ensure_requires(spec.parse_requires('d1'), spec.parse_requires('d1; d2'))
- assert spec.ensure_requires(spec.parse_requires('d1; d2'), spec.parse_requires('d1'))
- assert spec.ensure_requires(spec.parse_requires('d1; d2'), spec.parse_requires('d1; d2'))
-
- assert spec.ensure_requires(spec.parse_requires('d1'), spec.parse_requires('d1 < 1'))
- assert spec.ensure_requires(spec.parse_requires('d1 < 1'), spec.parse_requires('d1'))
- assert spec.ensure_requires(spec.parse_requires('d1 < 1'), spec.parse_requires('d1 < 2'))
- assert spec.ensure_requires(spec.parse_requires('d1 < 2'), spec.parse_requires('d1 < 1'))
-
- assert spec.ensure_requires(spec.parse_requires('d1'), spec.parse_requires('d1 > 1'))
- assert spec.ensure_requires(spec.parse_requires('d1 > 1'), spec.parse_requires('d1'))
- assert spec.ensure_requires(spec.parse_requires('d1 > 1'), spec.parse_requires('d1 > 2'))
- assert spec.ensure_requires(spec.parse_requires('d1 > 2'), spec.parse_requires('d1 > 1'))
-
- assert spec.ensure_requires(spec.parse_requires('d1'), spec.parse_requires('d1 > 1; d1 < 2'))
- assert spec.ensure_requires(spec.parse_requires('d1 > 1; d1 < 2'), spec.parse_requires('d1'))
- # Commented until implementing precice version comparation
- #assert spec.ensure_requires(spec.parse_requires('d1 > 1; d1 < 2'), spec.parse_requires('d1 > 0; d1 < 3'))
- #assert spec.ensure_requires(spec.parse_requires('d1 > 0; d1 < 3'), spec.parse_requires('d1 > 1; d1 < 2'))
-
- assert spec.ensure_requires(spec.parse_requires('d1 > 1; d1 <= 2'), spec.parse_requires('d1 >= 2; d1 < 3'))
- assert spec.ensure_requires(spec.parse_requires('d1 >= 1; d1 < 2'), spec.parse_requires('d1 > 0; d1 <= 1'))
- assert not spec.ensure_requires(spec.parse_requires('d1 > 1; d1 < 2'), spec.parse_requires('d1 > 2; d1 < 3'))
- assert not spec.ensure_requires(spec.parse_requires('d1 > 1; d1 < 2'), spec.parse_requires('d1 > 0; d1 < 1'))
+ def test_ensure(self):
+ assert spec.ensure(spec.parse_version('1'), spec.parse_requires('dep')['dep'])
+
+ assert spec.ensure(spec.parse_version('1'), spec.parse_requires('dep=1')['dep'])
+ assert not spec.ensure(spec.parse_version('2'), spec.parse_requires('dep=1')['dep'])
+
+ assert spec.ensure(spec.parse_version('1'), spec.parse_requires('dep<2')['dep'])
+ assert not spec.ensure(spec.parse_version('2'), spec.parse_requires('dep<2')['dep'])
+ assert not spec.ensure(spec.parse_version('3'), spec.parse_requires('dep<2')['dep'])
+
+ assert spec.ensure(spec.parse_version('3'), spec.parse_requires('dep>2')['dep'])
+ assert not spec.ensure(spec.parse_version('2'), spec.parse_requires('dep>2')['dep'])
+ assert not spec.ensure(spec.parse_version('1'), spec.parse_requires('dep>2')['dep'])
+
+ assert spec.ensure(spec.parse_version('1'), spec.parse_requires('dep<=2')['dep'])
+ assert spec.ensure(spec.parse_version('2'), spec.parse_requires('dep<=2')['dep'])
+ assert not spec.ensure(spec.parse_version('3'), spec.parse_requires('dep<=2')['dep'])
+
+ assert spec.ensure(spec.parse_version('3'), spec.parse_requires('dep>=2')['dep'])
+ assert spec.ensure(spec.parse_version('2'), spec.parse_requires('dep>=2')['dep'])
+ assert not spec.ensure(spec.parse_version('1'), spec.parse_requires('dep>=2')['dep'])
+
+ def test_ensure_StripVersionsForEQ(self):
+ assert spec.ensure(spec.parse_version('1.2'), spec.parse_requires('dep=1')['dep'])
+ assert not spec.ensure(spec.parse_version('1'), spec.parse_requires('dep=1.2')['dep'])
+ assert spec.ensure(spec.parse_version('1.2.3'), spec.parse_requires('dep=1.2')['dep'])
+
+ assert spec.ensure(spec.parse_version('1-pre2'), spec.parse_requires('dep=1')['dep'])
+ assert spec.ensure(spec.parse_version('1-post2'), spec.parse_requires('dep=1')['dep'])
+
+ assert spec.ensure(spec.parse_version('1.2-pre3'), spec.parse_requires('dep=1')['dep'])
+ assert spec.ensure(spec.parse_version('1.2-post3'), spec.parse_requires('dep=1')['dep'])
+
+ assert not spec.ensure(spec.parse_version('1-pre3'), spec.parse_requires('dep=1.2')['dep'])
+ assert not spec.ensure(spec.parse_version('1-post3'), spec.parse_requires('dep=1.2')['dep'])
if __name__ == '__main__':