示例#1
0
 def test_dependency_repr(self):
     dep = Dependency('foo', condition='$foo == 2')
     assert repr(dep) == "Dependency(name='foo', condition='$foo == 2')"
     self.assertTrue(dep.evaluate_condition({'foo': 2}))
     assert repr(dep) == "Dependency(name='foo', condition='$foo == 2', evaluated_condition=True)"
     self.assertFalse(dep.evaluate_condition({'foo': 3}))
     assert repr(dep) == "Dependency(name='foo', condition='$foo == 2', evaluated_condition=False)"
示例#2
0
    def test_init_dependency(self):
        dep = Dependency('foo',
                         version_lt=1,
                         version_lte=2,
                         version_eq=3,
                         version_gte=4,
                         version_gt=5,
                         condition='$foo == 23 and $bar != 42')
        self.assertEquals('foo', dep.name)
        self.assertEquals(1, dep.version_lt)
        self.assertEquals(2, dep.version_lte)
        self.assertEquals(3, dep.version_eq)
        self.assertEquals(4, dep.version_gte)
        self.assertEquals(5, dep.version_gt)
        self.assertFalse(dep.evaluate_condition({'foo': 23, 'bar': 42}))
        self.assertFalse(dep.evaluated_condition)
        self.assertTrue(dep.evaluate_condition({'foo': 23, 'bar': 43}))
        self.assertTrue(dep.evaluated_condition)
        self.assertRaises(TypeError, Dependency, 'foo', unknownattribute=42)

        d = {}
        d[dep] = None
        dep2 = Dependency('foo',
                          version_lt=1,
                          version_lte=2,
                          version_eq=3,
                          version_gte=4,
                          version_gt=5,
                          condition='$foo == 23 and $bar != 42')
        dep2.evaluate_condition({'foo': 23, 'bar': 43})
        d[dep2] = None
        self.assertEquals(len(d), 1)
        dep3 = Dependency('foo',
                          version_lt=1,
                          version_lte=2,
                          version_eq=3,
                          version_gte=4,
                          version_gt=6)
        d[dep3] = None
        self.assertEquals(len(d), 2)

        dep = Dependency('foo', condition='foo > bar and bar < baz')
        self.assertTrue(dep.evaluate_condition({}))

        dep = Dependency('foo', condition='foo <= bar or bar >= baz')
        self.assertFalse(dep.evaluate_condition({}))
    def test_init_dependency(self):
        dep = Dependency('foo',
                         version_lt=1,
                         version_lte=2,
                         version_eq=3,
                         version_gte=4,
                         version_gt=5,
                         condition='$foo == 23 and $bar != 42')
        self.assertEqual('foo', dep.name)
        self.assertEqual(1, dep.version_lt)
        self.assertEqual(2, dep.version_lte)
        self.assertEqual(3, dep.version_eq)
        self.assertEqual(4, dep.version_gte)
        self.assertEqual(5, dep.version_gt)
        self.assertFalse(dep.evaluate_condition({'foo': 23, 'bar': 42}))
        self.assertFalse(dep.evaluated_condition)
        self.assertTrue(dep.evaluate_condition({'foo': 23, 'bar': 43}))
        self.assertTrue(dep.evaluated_condition)
        self.assertRaises(TypeError, Dependency, 'foo', unknownattribute=42)

        d = {}
        d[dep] = None
        dep2 = Dependency('foo',
                          version_lt=1,
                          version_lte=2,
                          version_eq=3,
                          version_gte=4,
                          version_gt=5,
                          condition='$foo == 23 and $bar != 42')
        dep2.evaluate_condition({'foo': 23, 'bar': 43})
        d[dep2] = None
        self.assertEqual(len(d), 1)
        dep3 = Dependency('foo',
                          version_lt=1,
                          version_lte=2,
                          version_eq=3,
                          version_gte=4,
                          version_gt=6)
        d[dep3] = None
        self.assertEqual(len(d), 2)

        dep = Dependency('foo', condition='foo > bar and bar < baz')
        self.assertTrue(dep.evaluate_condition({}))

        dep = Dependency('foo', condition='foo <= bar or bar >= baz')
        self.assertFalse(dep.evaluate_condition({}))
示例#4
0
    def test_init_dependency(self):
        dep = Dependency('foo',
                         version_lt=1,
                         version_lte=2,
                         version_eq=3,
                         version_gte=4,
                         version_gt=5,
                         condition='$foo == 23 and $bar != 42')
        self.assertEqual('foo', dep.name)
        self.assertEqual(1, dep.version_lt)
        self.assertEqual(2, dep.version_lte)
        self.assertEqual(3, dep.version_eq)
        self.assertEqual(4, dep.version_gte)
        self.assertEqual(5, dep.version_gt)
        self.assertFalse(dep.evaluate_condition({'foo': 23, 'bar': 42}))
        self.assertFalse(dep.evaluated_condition)
        self.assertTrue(dep.evaluate_condition({'foo': 23, 'bar': 43}))
        self.assertTrue(dep.evaluated_condition)
        self.assertRaises(TypeError, Dependency, 'foo', unknownattribute=42)

        d = {}
        d[dep] = None
        dep2 = Dependency('foo',
                          version_lt=1,
                          version_lte=2,
                          version_eq=3,
                          version_gte=4,
                          version_gt=5,
                          condition='$foo == 23 and $bar != 42')
        dep2.evaluate_condition({'foo': 23, 'bar': 43})
        d[dep2] = None
        self.assertEqual(len(d), 1)
        dep3 = Dependency('foo',
                          version_lt=1,
                          version_lte=2,
                          version_eq=3,
                          version_gte=4,
                          version_gt=6)
        d[dep3] = None
        self.assertEqual(len(d), 2)

        dep = Dependency('foo', condition='foo > bar and bar < baz')
        self.assertTrue(dep.evaluate_condition({}))

        dep = Dependency('foo', condition='foo <= bar or bar >= baz')
        self.assertFalse(dep.evaluate_condition({}))

        dep = Dependency('foo', condition='$foo == ""')
        self.assertTrue(dep.evaluate_condition({}))
        self.assertFalse(dep.evaluate_condition({'foo': 'foo'}))

        dep = Dependency('foo', condition='$foo == "foo \' bar"')
        self.assertTrue(dep.evaluate_condition({'foo': "foo ' bar"}))
        self.assertFalse(dep.evaluate_condition({}))

        dep = Dependency('foo', condition="$foo == ''")
        self.assertTrue(dep.evaluate_condition({}))
        self.assertFalse(dep.evaluate_condition({'foo': 'foo'}))

        dep = Dependency('foo', condition="$foo == 'foo \" bar'")
        self.assertTrue(dep.evaluate_condition({'foo': 'foo " bar'}))
        self.assertFalse(dep.evaluate_condition({}))

        # Testing for more than 1 conditions
        dep = Dependency('foo',
                         condition='foo > bar and bar < baz and foo > bar')
        self.assertTrue(dep.evaluate_condition({}))

        dep = Dependency('foo',
                         condition='foo <= bar and bar >= baz and foo > bar')
        self.assertFalse(dep.evaluate_condition({}))

        dep = Dependency('foo',
                         condition='foo > bar or bar < baz or foo <= bar')
        self.assertTrue(dep.evaluate_condition({}))

        dep = Dependency('foo',
                         condition='foo <= bar or bar >= baz or foo <= bar')
        self.assertFalse(dep.evaluate_condition({}))

        dep = Dependency('foo',
                         condition='foo <= bar and bar < baz or foo > bar')
        self.assertTrue(dep.evaluate_condition({}))

        dep = Dependency('foo',
                         condition='foo <= bar or bar < baz and foo < bar')
        self.assertFalse(dep.evaluate_condition({}))

        dep = Dependency('foo',
                         condition='foo > bar and bar >= baz or foo > bar')
        self.assertTrue(dep.evaluate_condition({}))

        dep = Dependency('foo',
                         condition='foo <= bar or bar >= baz and foo < bar')
        self.assertFalse(dep.evaluate_condition({}))