Esempio n. 1
0
    def test_wildcard_on_attribute(self):
        class B(object):
            pass

        self.a.x = B()
        self.a.x.y = 5
        ret = safe_access(base_obj=self.a, path='a.*.y')
        self.assertEquals([5], ret)
Esempio n. 2
0
 def test_multiple_wildcards(self):
     ret = safe_access(base_obj=self.a, path='a.*[*][0]')
     self.assertEquals(ret, ['x'])
Esempio n. 3
0
 def test_wildcard_at_the_end_of_path(self):
     ret = safe_access(base_obj=self.a, path='a.b["abc"][*]')
     self.assertEquals(set(['x', 'y', 'z']), set(ret))
Esempio n. 4
0
 def test_wildcard_on_multiple_values(self):
     self.a.b["def"] = ['a', 'b', 'c']
     ret = safe_access(base_obj=self.a, path='a.b[*][1]')
     self.assertEquals(set(['y', 'b']), set(ret))
Esempio n. 5
0
 def test_wildcard_on_dict(self):
     self.a.b["def"] = dict()
     ret = safe_access(base_obj=self.a, path='a.b[*][1]')
     self.assertEquals(['y'], ret)
Esempio n. 6
0
 def test_variable_substitution(self):
     myvar = "abc"
     ret = safe_access(base_obj=self.a, path='a.b[myvar][1]', default_value=7, myvar=myvar)
     self.assertEquals('y', ret)
Esempio n. 7
0
 def test_access_non_existant_attribute(self):
     ret = safe_access(base_obj=self.a, path='a.bad_attribute')
     self.assertEquals(None, ret)
Esempio n. 8
0
 def test_default_value_works(self):
     ret = safe_access(base_obj=self.a, path='a.b["abc"][404]', default_value=7)
     self.assertEquals(7, ret)
Esempio n. 9
0
 def test_key_with_control_characters(self):
     ret = safe_access(base_obj=self.a, path="""a.b["['.']"].val""")
     self.assertEquals(99, ret)
Esempio n. 10
0
 def test_access_value(self):
     ret = safe_access(base_obj=self.a, path='a.b["abc"][1]', default_value=7)
     self.assertEquals('y', ret)