def testNumberedAttrsWithSubKeys(self): d1 = Driver('d1') d1.add_attr(key='foo', value='bar1', number=True, subkey='one') d1.add_attr(key='foo', value='bar2', number=True, subkey='two') self.assertEqual(d1.attr_items(), [(('foo', 0, 'one'), 'bar1'), (('foo', 1, 'two'), 'bar2')])
def testAttributeGetValueAfterAdd(self): d1 = Driver('d1') d1.add_attr('foo', 2) self.assertEqual(d1.attr_items('foo'), [(('foo', None, None), 2)]) d1.add_attr('bar', 3) self.assertEqual(d1.attr_items('foo'), [(('foo', None, None), 2)]) self.assertEqual(d1.attr_items('bar'), [(('bar', None, None), 3)])
def testSubKeyAttrs(self): d1 = Driver('d1') d1.add_attr('foo', 'bar', subkey='subfoo') d1.add_attr('foo', 'caz', subkey='subbar') self.assertEqual(sorted(d1.attr_key_tuples()), sorted([('foo', None, 'subfoo'), ('foo', None, 'subbar')]))
def testSubKeyAttrs(self): d1 = Driver('d1') d1.add_attr('foo', 'bar', subkey='subfoo') d1.add_attr('foo', 'caz', subkey='subbar') self.assertEqual( sorted(d1.attr_key_tuples()), sorted([('foo', None, 'subfoo'), ('foo', None, 'subbar')]))
def testGettingAttrs(self): d1 = Driver('d1') d1.add_attr('foo', 'bar') d1.add_attr('foo', 'bar1', number=0) self.assertEqual(sorted(d1.attr_items()), [(('foo', None, None), 'bar'), (('foo', 0, None), 'bar1')]) self.assertEqual(d1.attr_items(number=True), [(('foo', 0, None), 'bar1')])
def testAutoNumberedAttrs(self): d1 = Driver('d1') d1.add_attr('foo', 'bar') d1.add_attr('foo', 'bar1', number=True) d1.add_attr('foo', 'bar2', number=True) clusto.flush() self.assertEqual( sorted(d1.attr_items()), sorted([(('foo', None, None), 'bar'), (('foo', 0, None), 'bar1'), (('foo', 1, None), 'bar2')])) self.assertEqual( sorted(d1.attr_items(number=True)), sorted([(('foo', 0, None), 'bar1'), (('foo', 1, None), 'bar2')]))
def testAutoNumberedAttrs(self): d1 = Driver('d1') d1.add_attr('foo', 'bar') d1.add_attr('foo', 'bar1', number=True) d1.add_attr('foo', 'bar2', number=True) clusto.flush() self.assertEqual(sorted(d1.attr_items()), sorted([(('foo', None, None), 'bar'), (('foo', 0, None), 'bar1'), (('foo', 1, None), 'bar2')])) self.assertEqual(sorted(d1.attr_items(number=True)), sorted([(('foo', 0, None), 'bar1'), (('foo', 1, None), 'bar2')]))
def testSetAttrs(self): d1 = Driver('d1') d1.set_attr('foo', 'bar') self.assertEqual(d1.attr_items(), [(('foo', None, None), 'bar')]) d1.set_attr('foo', 'bar2') self.assertEqual(d1.attr_items(), [(('foo', None, None), 'bar2')]) d1.add_attr('foo', 'bar3') self.assertEqual( sorted(d1.attr_items()), sorted([(('foo', None, None), 'bar2'), (('foo', None, None), 'bar3')])) self.assertRaises(DriverException, d1.set_attr, 'foo', 'bar4') d2 = Driver('d2') d2.add_attr('a', number=0, subkey='foo', value='bar1') d2.add_attr('a', number=1, subkey='foo', value='bar1') d2.add_attr('a', number=2, subkey='foo', value='bar1') d2.set_attr('a', 't1') self.assertEqual( sorted(d2.attr_items()), sorted([(('a', 0, 'foo'), 'bar1'), (('a', 1, 'foo'), 'bar1'), (('a', 2, 'foo'), 'bar1'), (('a', None, None), 't1')]))
def testSetAttrs(self): d1 = Driver('d1') d1.set_attr('foo', 'bar') self.assertEqual(d1.attr_items(), [(('foo', None, None), 'bar')]) d1.set_attr('foo', 'bar2') self.assertEqual(d1.attr_items(), [(('foo', None, None), 'bar2')]) d1.add_attr('foo', 'bar3') self.assertEqual(sorted(d1.attr_items()), sorted([(('foo', None, None), 'bar2'), (('foo', None, None), 'bar3')])) self.assertRaises(DriverException, d1.set_attr, 'foo', 'bar4') d2 = Driver('d2') d2.add_attr('a', number=0, subkey='foo', value='bar1') d2.add_attr('a', number=1, subkey='foo', value='bar1') d2.add_attr('a', number=2, subkey='foo', value='bar1') d2.set_attr('a', 't1') self.assertEqual(sorted(d2.attr_items()), sorted([(('a', 0, 'foo'), 'bar1'), (('a', 1, 'foo'), 'bar1'), (('a', 2, 'foo'), 'bar1'), (('a', None, None), 't1')]))
def testHasAttr(self): d1 = Driver('d1') d1.add_attr(key='foo', value='bar1', number=True, subkey='one') d1.add_attr(key='foo', value='bar2', number=True, subkey='two') d1.add_attr(key='foo', value='bar3', number=True, subkey='three') d1.add_attr(key='foo', value='bar4', number=True, subkey='four') self.assertFalse(d1.has_attr(key='foo', number=False)) self.assertTrue(d1.has_attr(key='foo', number=True)) self.assertTrue(d1.has_attr(key='foo', number=1, subkey='two'))
def testHiddenAttrs(self): d1 = Driver('d1') d1.add_attr(key='foo', value='bar1', number=True, subkey='one') d1.add_attr(key='foo', value='bar2', number=True, subkey='two') d1.add_attr(key='_foo', value='bar3', number=True, subkey='three') d1.add_attr(key='_foo', value='bar4', number=True, subkey='four') self.assertEqual(d1.attr_items(ignore_hidden=True), [(('foo', 0, 'one'), 'bar1'), (('foo', 1, 'two'), 'bar2')])
def testGettingAttrsWithSpecificValues(self): d1 = Driver('d1') d1.add_attr(key='foo', value='bar1', number=True, subkey='one') d1.add_attr(key='foo', value='bar2', number=True, subkey='two') d1.add_attr(key='foo', value='bar3', number=True, subkey='three') d1.add_attr(key='foo', value='bar4', number=True, subkey='four') self.assertEqual(list(d1.attr_items(value='bar3')), [(('foo', 2, 'three'), 'bar3')]) self.assertEqual(list(d1.attr_items(value='bar1')), [(('foo', 0, 'one'), 'bar1')])
def testGettingAttrsMultipleTimes(self): d1 = Driver('d1') d2 = Driver('d2') d1.add_attr('foo', 'bar') d1.add_attr('foo0', 'bar1') d2.add_attr('d1', d1) clusto.flush() d = clusto.get_by_name('d1') self.assertEqual(len(d.references()), 1) self.assertEqual(len(d.attrs()), 2)
def testGettingAttrValues(self): d1 = Driver('d1') d2 = Driver('d2') d1.add_attr('foo', 'bar') d1.add_attr('foo0', 'bar1') d2.add_attr('d1', d1) clusto.flush() self.assertEqual(sorted(['bar', 'bar1']), sorted(d1.attr_values('foo.*', regex=True))) self.assertEqual([d1], d2.attr_values())
def testAttrCount(self): d1 = Driver('d1') d1.add_attr(key='foo', value='bar1', number=True, subkey='one') d1.add_attr(key='foo', value='bar2', number=True, subkey='two') d1.add_attr(key='foo', value='bar3', number=True, subkey='three') d1.add_attr(key='foo', value='bar4', number=True, subkey='four') self.assertEqual(d1.attr_query(key='foo', number=2, count=True), 1) self.assertEqual(d1.attr_query(key='foo', number=0, count=True), 1) self.assertEqual(d1.attr_query(key='foo', number=False, count=True), 0) self.assertEqual(d1.attr_query(key='foo', count=True), 4) self.assertEqual(d1.attr_query(subkey='four', count=True), 1) d1.del_attrs(key='foo', value='bar1', number=True, subkey='one') d1.add_attr(key='foo', value='bar5', number=True, subkey='five') self.assertEqual(d1.attr_query(key='foo', number=0, count=True), 0) self.assertEqual(d1.attr_query(key='foo', number=4, count=True), 1)
def testGetByAttr(self): d1 = Driver('d1') d1.add_attr('foo', 1) d2 = Driver('d2') d2.add_attr('foo', 2) d3 = Driver('d3') d3.add_attr('bar', 3) clusto.flush() result = Driver.get_by_attr('foo', 2) self.assertEqual(result, [d2])
def testDelAttrs(self): d1 = Driver('d1') d1.add_attr(key='foo', value='bar1', number=True, subkey='one') d1.add_attr(key='foo', value='bar2', number=True, subkey='two') d1.add_attr(key='foo', value='bar3', number=True, subkey='three') d1.add_attr(key='foo', value='bar4', number=True, subkey='four') d1.del_attrs(key='foo', value='bar4') self.assertEqual(list(d1.attr_items(value='bar4')), []) self.assertEqual(list(d1.attr_items(value='bar3')), [(('foo', 2, 'three'), 'bar3')]) d1.del_attrs(key='foo', subkey='three', number=2) self.assertEqual(list(d1.attr_items(value='bar3')), [])
def data(self): d1 = Driver('d1') d2 = Driver('d2') d3 = Driver('d3') d1.add_attr('_foo', 'bar1') d1.add_attr('car', 'baz') d1.add_attr('car', 'baz') d1.add_attr('d', 'dee', number=True) d1.add_attr('d', 'dee', number=True) d1.add_attr('a', 1) d1.add_attr('a', 1, subkey='t') d1.add_attr('a', 1, subkey='g') d1.add_attr('a', 1, subkey='z', number=4) d1.add_attr('a', 1, subkey='z', number=5) d1.add_attr('a', 1, subkey='z', number=6) d1.set_attr('d2', d2) d1.set_attr('d3', d3) d2.set_attr('aaa', 1) d2.set_attr('aab', 2) d2.set_attr('aac', 3)