Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units')
-rwxr-xr-xtests/units/model/context.py20
-rwxr-xr-xtests/units/model/model.py28
-rwxr-xr-xtests/units/node/model.py296
-rwxr-xr-xtests/units/node/node.py21
-rwxr-xr-xtests/units/toolkit/spec.py154
5 files changed, 259 insertions, 260 deletions
diff --git a/tests/units/model/context.py b/tests/units/model/context.py
index 8fd5b56..0990f15 100755
--- a/tests/units/model/context.py
+++ b/tests/units/model/context.py
@@ -79,10 +79,9 @@ class ContextTest(tests.Test):
'announce': next(volume['post'].find(query='title:1')[0]).guid,
'version': [[1], 0],
'requires': {},
- 'commands': {'activity': {'exec': 'true'}},
- 'spec': {'*-*': {'bundle': str(hash(bundle1))}},
+ 'command': 'true',
+ 'bundles': {'*-*': {'blob': str(hash(bundle1)), 'unpack_size': len(activity_info1)}},
'stability': 'stable',
- 'unpack_size': len(activity_info1),
},
},
}, conn.get(['context', context, 'releases']))
@@ -109,10 +108,9 @@ class ContextTest(tests.Test):
'announce': next(volume['post'].find(query='title:1')[0]).guid,
'version': [[1], 0],
'requires': {},
- 'commands': {'activity': {'exec': 'true'}},
- 'spec': {'*-*': {'bundle': str(hash(bundle1))}},
+ 'command': 'true',
+ 'bundles': {'*-*': {'blob': str(hash(bundle1)), 'unpack_size': len(activity_info1)}},
'stability': 'stable',
- 'unpack_size': len(activity_info1),
},
},
release2: {
@@ -123,10 +121,9 @@ class ContextTest(tests.Test):
'announce': next(volume['post'].find(query='title:2')[0]).guid,
'version': [[2], 0],
'requires': {},
- 'commands': {'activity': {'exec': 'true'}},
- 'spec': {'*-*': {'bundle': str(hash(bundle2))}},
+ 'command': 'true',
+ 'bundles': {'*-*': {'blob': str(hash(bundle2)), 'unpack_size': len(activity_info2)}},
'stability': 'stable',
- 'unpack_size': len(activity_info2),
},
},
}, conn.get(['context', context, 'releases']))
@@ -147,10 +144,9 @@ class ContextTest(tests.Test):
'announce': next(volume['post'].find(query='title:2')[0]).guid,
'version': [[2], 0],
'requires': {},
- 'commands': {'activity': {'exec': 'true'}},
- 'spec': {'*-*': {'bundle': str(hash(bundle2))}},
+ 'command': 'true',
+ 'bundles': {'*-*': {'blob': str(hash(bundle2)), 'unpack_size': len(activity_info2)}},
'stability': 'stable',
- 'unpack_size': len(activity_info2),
},
},
}, conn.get(['context', context, 'releases']))
diff --git a/tests/units/model/model.py b/tests/units/model/model.py
index 28d8244..7649571 100755
--- a/tests/units/model/model.py
+++ b/tests/units/model/model.py
@@ -79,16 +79,18 @@ class ModelTest(tests.Test):
self.assertEqual('developer', release['stability'])
self.assertEqual(['Public Domain'], release['license'])
self.assertEqual('developer', release['stability'])
- self.assertEqual(
- {'dep': {}, 'sugar': {'restrictions': [('0.88', None)]}},
- release['requires'])
+ self.assertEqual({
+ 'dep': [],
+ 'sugar': [([1, 0], [[0, 88], 0])],
+ },
+ release['requires'])
self.assertEqual({
'*-*': {
- 'bundle': blob.digest,
+ 'blob': blob.digest,
+ 'unpack_size': len(activity_info) + len(changelog),
},
},
- release['spec'])
- self.assertEqual(len(activity_info) + len(changelog), release['unpack_size'])
+ release['bundles'])
post = volume['post'][release['announce']]
assert tests.UID in post['author']
@@ -492,13 +494,13 @@ class ModelTest(tests.Test):
context, release = load_bundle(blob, 'bundle_id')
self.assertEqual({
- 'dep5': {'restrictions': [('40', None)]},
- 'dep4': {'restrictions': [('31', None)]},
- 'dep7': {'restrictions': [('1', '4')]},
- 'dep6': {'restrictions': [('6', '7')]},
- 'dep1': {},
- 'dep3': {'restrictions': [(None, '21')]},
- 'dep2': {'restrictions': [(None, '10')]},
+ 'dep5': [([1, 0], [[40], 0])],
+ 'dep4': [([1], [[30], 0])],
+ 'dep7': [([1, 0], [[1], 0]), ([-1, 0], [[3], 0])],
+ 'dep6': [([1], [[5], 0]), ([-1], [[7], 0])],
+ 'dep1': [],
+ 'dep3': [([-1, 0], [[20], 0])],
+ 'dep2': [([-1], [[10], 0])],
},
release['requires'])
diff --git a/tests/units/node/model.py b/tests/units/node/model.py
index 13c1ef5..795b124 100755
--- a/tests/units/node/model.py
+++ b/tests/units/node/model.py
@@ -662,24 +662,24 @@ class ModelTest(tests.Test):
context = volume['context'].create({
'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands1'}},
- '2': {'value': {'stability': 'stable', 'version': 2, 'commands': 'commands2'}},
- '3': {'value': {'stability': 'stable', 'version': 3, 'commands': 'commands3'}},
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'commands1'}},
+ '2': {'value': {'stability': 'stable', 'version': [[2], 0], 'command': 'commands2'}},
+ '3': {'value': {'stability': 'stable', 'version': [[3], 0], 'command': 'commands3'}},
},
})
self.assertEqual(
- {'commands': 'commands3', 'files': {context: '3'}, 'packages': {}},
+ {context: {'command': 'commands3', 'blob': '3', 'version': [[3], 0]}},
model.solve(volume, context))
context = volume['context'].create({
'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '3': {'value': {'stability': 'stable', 'version': 3, 'commands': 'commands3'}},
- '2': {'value': {'stability': 'stable', 'version': 2, 'commands': 'commands2'}},
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands1'}},
+ '3': {'value': {'stability': 'stable', 'version': [[3], 0], 'command': 'commands3'}},
+ '2': {'value': {'stability': 'stable', 'version': [[2], 0], 'command': 'commands2'}},
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'commands1'}},
},
})
self.assertEqual(
- {'commands': 'commands3', 'files': {context: '3'}, 'packages': {}},
+ {context: {'command': 'commands3', 'blob': '3', 'version': [[3], 0]}},
model.solve(volume, context))
def test_solve_SortByStability(self):
@@ -688,13 +688,13 @@ class ModelTest(tests.Test):
context = volume['context'].create({
'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'developer', 'version': 1, 'commands': 'commands1'}},
- '2': {'value': {'stability': 'stable', 'version': 2, 'commands': 'commands2'}},
- '3': {'value': {'stability': 'buggy', 'version': 3, 'commands': 'commands3'}},
+ '1': {'value': {'stability': 'developer', 'version': [[1], 0], 'command': 'commands1'}},
+ '2': {'value': {'stability': 'stable', 'version': [[2], 0], 'command': 'commands2'}},
+ '3': {'value': {'stability': 'buggy', 'version': [[3], 0], 'command': 'commands3'}},
},
})
self.assertEqual(
- {'commands': 'commands2', 'files': {context: '2'}, 'packages': {}},
+ {context: {'command': 'commands2', 'blob': '2', 'version': [[2], 0]}},
model.solve(volume, context))
def test_solve_CollectDeps(self):
@@ -705,9 +705,9 @@ class ModelTest(tests.Test):
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
'1': {'value': {
'stability': 'stable',
- 'version': 1,
+ 'version': [[1], 0],
'requires': spec.parse_requires('context2; context4'),
- 'commands': 'commands',
+ 'command': 'command',
}},
},
})
@@ -715,26 +715,27 @@ class ModelTest(tests.Test):
'guid': 'context2', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
'2': {'value': {
'stability': 'stable',
- 'version': 2,
+ 'version': [[2], 0],
'requires': spec.parse_requires('context3'),
}},
},
})
volume['context'].create({
'guid': 'context3', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '3': {'value': {'stability': 'stable', 'version': 3}},
+ '3': {'value': {'stability': 'stable', 'version': [[3], 0]}},
},
})
volume['context'].create({
'guid': 'context4', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '4': {'value': {'stability': 'stable', 'version': 4}},
+ '4': {'value': {'stability': 'stable', 'version': [[4], 0]}},
},
})
self.assertEqual({
- 'commands': 'commands',
- 'files': {'context3': '3', 'context2': '2', 'context1': '1', 'context4': '4'},
- 'packages': {},
+ 'context1': {'blob': '1', 'version': [[1], 0], 'command': 'command'},
+ 'context2': {'blob': '2', 'version': [[2], 0]},
+ 'context3': {'blob': '3', 'version': [[3], 0]},
+ 'context4': {'blob': '4', 'version': [[4], 0]},
},
model.solve(volume, 'context1'))
@@ -744,90 +745,103 @@ class ModelTest(tests.Test):
volume['context'].create({
'guid': 'dep', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': '1'}},
- '2': {'value': {'stability': 'stable', 'version': '2'}},
- '3': {'value': {'stability': 'stable', 'version': '3'}},
- '4': {'value': {'stability': 'stable', 'version': '4'}},
- '5': {'value': {'stability': 'stable', 'version': '5'}},
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0]}},
+ '2': {'value': {'stability': 'stable', 'version': [[2], 0]}},
+ '3': {'value': {'stability': 'stable', 'version': [[3], 0]}},
+ '4': {'value': {'stability': 'stable', 'version': [[4], 0]}},
+ '5': {'value': {'stability': 'stable', 'version': [[5], 0]}},
},
})
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep < 3'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '2', 'context1': '10'}, 'commands': 'commands', 'packages': {}},
+ self.assertEqual({
+ 'context1': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '2', 'version': [[2], 0]},
+ },
model.solve(volume, 'context1'))
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep <= 3'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '3', 'context1': '10'}, 'commands': 'commands', 'packages': {}},
+ self.assertEqual({
+ 'context1': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '3', 'version': [[3], 0]},
+ },
model.solve(volume, 'context1'))
-
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep > 2'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '5', 'context1': '10'}, 'commands': 'commands', 'packages': {}},
+ self.assertEqual({
+ 'context1': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '5', 'version': [[5], 0]},
+ },
model.solve(volume, 'context1'))
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep >= 2'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '5', 'context1': '10'}, 'commands': 'commands', 'packages': {}},
+ self.assertEqual({
+ 'context1': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '5', 'version': [[5], 0]},
+ },
model.solve(volume, 'context1'))
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep > 2; dep < 5'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '4', 'context1': '10'}, 'commands': 'commands', 'packages': {}},
+ self.assertEqual({
+ 'context1': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '4', 'version': [[4], 0]},
+ },
model.solve(volume, 'context1'))
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep > 2; dep <= 3'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '3', 'context1': '10'}, 'commands': 'commands', 'packages': {}},
+ self.assertEqual({
+ 'context1': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '3', 'version': [[3], 0]},
+ },
model.solve(volume, 'context1'))
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep = 1'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '1', 'context1': '10'}, 'commands': 'commands', 'packages': {}},
+ self.assertEqual({
+ 'context1': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '1', 'version': [[1], 0]},
+ },
model.solve(volume, 'context1'))
def test_solve_SwitchToAlternativeBranch(self):
@@ -836,30 +850,32 @@ class ModelTest(tests.Test):
volume['context'].create({
'guid': 'context1', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '6': {'value': {'stability': 'stable', 'version': '1', 'requires': spec.parse_requires('context4=1'), 'commands': 'commands6'}},
- '1': {'value': {'stability': 'stable', 'version': '2', 'requires': spec.parse_requires('context2'), 'commands': 'commands1'}},
+ '6': {'value': {'stability': 'stable', 'version': [[1], 0], 'requires': spec.parse_requires('context4=1'), 'command': 'commands6'}},
+ '1': {'value': {'stability': 'stable', 'version': [[2], 0], 'requires': spec.parse_requires('context2'), 'command': 'commands1'}},
},
})
volume['context'].create({
'guid': 'context2', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '2': {'value': {'stability': 'stable', 'version': '1', 'requires': spec.parse_requires('context3; context4=1')}},
+ '2': {'value': {'stability': 'stable', 'version': [[1], 0], 'requires': spec.parse_requires('context3; context4=1')}},
},
})
volume['context'].create({
'guid': 'context3', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '3': {'value': {'stability': 'stable', 'version': '1', 'requires': spec.parse_requires('context4=2')}},
+ '3': {'value': {'stability': 'stable', 'version': [[1], 0], 'requires': spec.parse_requires('context4=2')}},
},
})
volume['context'].create({
'guid': 'context4', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '4': {'value': {'stability': 'stable', 'version': '2'}},
- '5': {'value': {'stability': 'stable', 'version': '1'}},
+ '4': {'value': {'stability': 'stable', 'version': [[2], 0]}},
+ '5': {'value': {'stability': 'stable', 'version': [[1], 0]}},
},
})
- self.assertEqual(
- {'files': {'context1': '6', 'context4': '5'}, 'commands': 'commands6', 'packages': {}},
- model.solve(volume, 'context1'))
+ self.assertEqual({
+ 'context1': {'blob': '6', 'version': [[1], 0], 'command': 'commands6'},
+ 'context4': {'blob': '5', 'version': [[1], 0]},
+ },
+ model.solve(volume, 'context1'))
def test_solve_CommonDeps(self):
volume = db.Volume('master', [Context])
@@ -867,11 +883,11 @@ class ModelTest(tests.Test):
volume['context'].create({
'guid': 'dep', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': '1'}},
- '2': {'value': {'stability': 'stable', 'version': '2'}},
- '3': {'value': {'stability': 'stable', 'version': '3'}},
- '4': {'value': {'stability': 'stable', 'version': '4'}},
- '5': {'value': {'stability': 'stable', 'version': '5'}},
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0]}},
+ '2': {'value': {'stability': 'stable', 'version': [[2], 0]}},
+ '3': {'value': {'stability': 'stable', 'version': [[3], 0]}},
+ '4': {'value': {'stability': 'stable', 'version': [[4], 0]}},
+ '5': {'value': {'stability': 'stable', 'version': [[5], 0]}},
},
})
@@ -879,40 +895,46 @@ class ModelTest(tests.Test):
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {},
'dependencies': 'dep=2',
'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires(''),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '2', 'context': '10'}, 'commands': 'commands', 'packages': {}},
- model.solve(volume, 'context'))
+ self.assertEqual({
+ 'context': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '2', 'version': [[2], 0]},
+ },
+ model.solve(volume, 'context'))
volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {},
'dependencies': 'dep<5',
'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep>1'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '4', 'context': '10'}, 'commands': 'commands', 'packages': {}},
- model.solve(volume, 'context'))
+ self.assertEqual({
+ 'context': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '4', 'version': [[4], 0]},
+ },
+ model.solve(volume, 'context'))
volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {},
'dependencies': 'dep<4',
'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep<5'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '3', 'context': '10'}, 'commands': 'commands', 'packages': {}},
- model.solve(volume, 'context'))
+ self.assertEqual({
+ 'context': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '3', 'version': [[3], 0]},
+ },
+ model.solve(volume, 'context'))
def test_solve_ExtraDeps(self):
volume = db.Volume('master', [Context])
@@ -920,46 +942,51 @@ class ModelTest(tests.Test):
volume['context'].create({
'guid': 'dep', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': '1'}},
- '2': {'value': {'stability': 'stable', 'version': '2'}},
- '3': {'value': {'stability': 'stable', 'version': '3'}},
- '4': {'value': {'stability': 'stable', 'version': '4'}},
- '5': {'value': {'stability': 'stable', 'version': '5'}},
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0]}},
+ '2': {'value': {'stability': 'stable', 'version': [[2], 0]}},
+ '3': {'value': {'stability': 'stable', 'version': [[3], 0]}},
+ '4': {'value': {'stability': 'stable', 'version': [[4], 0]}},
+ '5': {'value': {'stability': 'stable', 'version': [[5], 0]}},
},
})
volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires(''),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '2', 'context': '10'}, 'commands': 'commands', 'packages': {}},
- model.solve(volume, 'context', requires='dep=2'))
+ self.assertEqual({
+ 'context': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ },
+ model.solve(volume, 'context'))
volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep>1'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '4', 'context': '10'}, 'commands': 'commands', 'packages': {}},
- model.solve(volume, 'context', requires='dep<5'))
+ self.assertEqual({
+ 'context': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '5', 'version': [[5], 0]},
+ },
+ model.solve(volume, 'context'))
volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep<5'),
}},
},
})
- self.assertEqual(
- {'files': {'dep': '3', 'context': '10'}, 'commands': 'commands', 'packages': {}},
- model.solve(volume, 'context', requires='dep<4'))
+ self.assertEqual({
+ 'context': {'blob': '10', 'version': [[1], 0], 'command': 'command'},
+ 'dep': {'blob': '4', 'version': [[4], 0]},
+ },
+ model.solve(volume, 'context'))
def test_solve_Nothing(self):
volume = db.Volume('master', [Context])
@@ -968,11 +995,11 @@ class ModelTest(tests.Test):
volume['context'].create({
'guid': 'dep', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': '1'}},
- '2': {'value': {'stability': 'stable', 'version': '2'}},
- '3': {'value': {'stability': 'stable', 'version': '3'}},
- '4': {'value': {'stability': 'stable', 'version': '4'}},
- '5': {'value': {'stability': 'stable', 'version': '5'}},
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0]}},
+ '2': {'value': {'stability': 'stable', 'version': [[2], 0]}},
+ '3': {'value': {'stability': 'stable', 'version': [[3], 0]}},
+ '4': {'value': {'stability': 'stable', 'version': [[4], 0]}},
+ '5': {'value': {'stability': 'stable', 'version': [[5], 0]}},
},
})
@@ -984,7 +1011,7 @@ class ModelTest(tests.Test):
volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '10': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '10': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep=0'),
}},
},
@@ -998,7 +1025,7 @@ class ModelTest(tests.Test):
context = volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('package'),
}},
},
@@ -1006,29 +1033,34 @@ class ModelTest(tests.Test):
volume['context'].create({
'guid': 'package', 'type': ['package'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
'resolves': {
- 'Ubuntu-10.04': {'version': 1, 'packages': ['pkg1', 'pkg2']},
+ 'Ubuntu-10.04': {'version': [[1], 0], 'packages': ['pkg1', 'pkg2']},
},
},
})
- self.assertEqual(
- {'files': {'context': '1'}, 'commands': 'commands', 'packages': {'package': ['pkg1', 'pkg2']}},
- model.solve(volume, context, lsb_id='Ubuntu', lsb_release='10.04'))
+ self.assertEqual({
+ 'context': {'blob': '1', 'command': 'command', 'version': [[1], 0]},
+ 'package': {'packages': ['pkg1', 'pkg2'], 'version': [[1], 0]},
+ },
+ model.solve(volume, context, lsb_id='Ubuntu', lsb_release='10.04'))
context = volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('dep; package'),
}},
},
})
volume['context'].create({
'guid': 'dep', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '2': {'value': {'stability': 'stable', 'version': '1'}},
+ '2': {'value': {'stability': 'stable', 'version': [[1], 0]}},
},
})
- self.assertEqual(
- {'files': {'dep': '2', 'context': '1'}, 'commands': 'commands', 'packages': {'package': ['pkg1', 'pkg2']}},
- model.solve(volume, context, lsb_id='Ubuntu', lsb_release='10.04'))
+ self.assertEqual({
+ 'context': {'blob': '1', 'command': 'command', 'version': [[1], 0]},
+ 'dep': {'blob': '2', 'version': [[1], 0]},
+ 'package': {'packages': ['pkg1', 'pkg2'], 'version': [[1], 0]},
+ },
+ model.solve(volume, context, lsb_id='Ubuntu', lsb_release='10.04'))
def test_solve_PackagesByLsbId(self):
volume = db.Volume('master', [Context])
@@ -1037,7 +1069,7 @@ class ModelTest(tests.Test):
context = volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('package1'),
}},
},
@@ -1047,13 +1079,15 @@ class ModelTest(tests.Test):
'Ubuntu': {'value': {'binary': ['bin1', 'bin2'], 'devel': ['devel1', 'devel2']}},
},
})
- self.assertEqual(
- {'files': {'context': '1'}, 'commands': 'commands', 'packages': {'package1': ['bin1', 'bin2', 'devel1', 'devel2']}},
- model.solve(volume, context, lsb_id='Ubuntu'))
+ self.assertEqual({
+ 'context': {'blob': '1', 'command': 'command', 'version': [[1], 0]},
+ 'package1': {'packages': ['bin1', 'bin2', 'devel1', 'devel2'], 'version': []},
+ },
+ model.solve(volume, context, lsb_id='Ubuntu'))
context = volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('package2'),
}},
},
@@ -1062,13 +1096,15 @@ class ModelTest(tests.Test):
'guid': 'package2', 'type': ['package'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
'Ubuntu': {'value': {'binary': ['bin']}},
'resolves': {
- 'Ubuntu-10.04': {'version': 1, 'packages': ['pkg1', 'pkg2']},
+ 'Ubuntu-10.04': {'version': [[1], 0], 'packages': ['pkg1', 'pkg2']},
},
},
})
- self.assertEqual(
- {'files': {'context': '1'}, 'commands': 'commands', 'packages': {'package2': ['bin']}},
- model.solve(volume, context, lsb_id='Ubuntu', lsb_release='fake'))
+ self.assertEqual({
+ 'context': {'blob': '1', 'command': 'command', 'version': [[1], 0]},
+ 'package2': {'packages': ['bin'], 'version': []},
+ },
+ model.solve(volume, context, lsb_id='Ubuntu', lsb_release='fake'))
def test_solve_PackagesByCommonAlias(self):
volume = db.Volume('master', [Context])
@@ -1077,7 +1113,7 @@ class ModelTest(tests.Test):
context = volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('package1'),
}},
},
@@ -1087,19 +1123,25 @@ class ModelTest(tests.Test):
'*': {'value': {'binary': ['pkg1']}},
'Ubuntu': {'value': {'binary': ['pkg2']}},
'resolves': {
- 'Ubuntu-10.04': {'version': 1, 'packages': ['pkg3']},
+ 'Ubuntu-10.04': {'version': [[1], 0], 'packages': ['pkg3']},
},
},
})
- self.assertEqual(
- {'files': {'context': '1'}, 'commands': 'commands', 'packages': {'package1': ['pkg1']}},
- model.solve(volume, context))
- self.assertEqual(
- {'files': {'context': '1'}, 'commands': 'commands', 'packages': {'package1': ['pkg1']}},
- model.solve(volume, context, lsb_id='Fake'))
- self.assertEqual(
- {'files': {'context': '1'}, 'commands': 'commands', 'packages': {'package1': ['pkg1']}},
- model.solve(volume, context, lsb_id='Fake', lsb_release='fake'))
+ self.assertEqual({
+ 'context': {'blob': '1', 'command': 'command', 'version': [[1], 0]},
+ 'package1': {'packages': ['pkg1'], 'version': []},
+ },
+ model.solve(volume, context))
+ self.assertEqual({
+ 'context': {'blob': '1', 'command': 'command', 'version': [[1], 0]},
+ 'package1': {'packages': ['pkg1'], 'version': []},
+ },
+ model.solve(volume, context, lsb_id='Fake'))
+ self.assertEqual({
+ 'context': {'blob': '1', 'command': 'command', 'version': [[1], 0]},
+ 'package1': {'packages': ['pkg1'], 'version': []},
+ },
+ model.solve(volume, context, lsb_id='Fake', lsb_release='fake'))
def test_solve_NoPackages(self):
volume = db.Volume('master', [Context])
@@ -1108,7 +1150,7 @@ class ModelTest(tests.Test):
context = volume['context'].create({
'guid': 'context', 'type': ['activity'], 'title': {}, 'summary': {}, 'description': {}, 'releases': {
- '1': {'value': {'stability': 'stable', 'version': 1, 'commands': 'commands',
+ '1': {'value': {'stability': 'stable', 'version': [[1], 0], 'command': 'command',
'requires': spec.parse_requires('package'),
}},
},
diff --git a/tests/units/node/node.py b/tests/units/node/node.py
index 025a0c0..2c8ab8a 100755
--- a/tests/units/node/node.py
+++ b/tests/units/node/node.py
@@ -560,10 +560,9 @@ class NodeTest(tests.Test):
'announce': announce,
'version': [[1], 0],
'requires': {},
- 'spec': {'*-*': {'bundle': str(hash(bundle))}},
- 'commands': {'activity': {'exec': 'true'}},
+ 'bundles': {'*-*': {'blob': str(hash(bundle)), 'unpack_size': len(activity_info) + len(changelog)}},
+ 'command': 'true',
'stability': 'developer',
- 'unpack_size': len(activity_info) + len(changelog),
},
},
}, conn.get(['context', 'bundle_id', 'releases']))
@@ -617,9 +616,9 @@ class NodeTest(tests.Test):
conn.put(['context', 'package', 'releases', '*'], {'binary': ['package.bin']})
self.assertEqual({
- 'commands': {'activity': {'exec': 'true'}},
- 'files': {'dep': dep_file, 'activity': activity_file},
- 'packages': {'package': ['package.bin']},
+ 'activity': {'blob': activity_file, 'command': 'true', 'version': [[1], 0]},
+ 'dep': {'blob': dep_file, 'version': [[2], 0]},
+ 'package': {'packages': ['package.bin'], 'version': []},
},
conn.get(['context', 'activity'], cmd='solve'))
@@ -671,14 +670,14 @@ class NodeTest(tests.Test):
})
volume['context'].update('package', {'releases': {
'resolves': {
- 'Ubuntu-10.04': {'version': 1, 'packages': ['package.bin']},
- 'Ubuntu-12.04': {'version': 2, 'packages': ['package-fake.bin']},
+ 'Ubuntu-10.04': {'version': [[1], 0], 'packages': ['package.bin']},
+ 'Ubuntu-12.04': {'version': [[2], 0], 'packages': ['package-fake.bin']},
}}})
self.assertEqual({
- 'commands': {'activity': {'exec': 'true'}},
- 'files': {'dep': dep_file, 'activity': activity_file},
- 'packages': {'package': ['package.bin']},
+ 'activity': {'blob': activity_file, 'command': 'true', 'version': [[1], 0]},
+ 'dep': {'blob': dep_file, 'version': [[2], 0]},
+ 'package': {'packages': ['package.bin'], 'version': [[1], 0]},
},
conn.get(['context', 'activity'], cmd='solve',
stability='developer', lsb_id='Ubuntu', lsb_release='10.04', requires=['dep', 'package']))
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__':