def testRepr(self): self.assertEqual(repr(self.mickey), u'< Animal Mickey (male; Tag: 2) >') mouse = Animal.fromRow('Jerry', '1') self.assertEqual(repr(mouse), u'< Animal Jerry (Tag: 1) >') mouse.merge(Animal.fromRow('Jerry', ' 2')) self.assertEqual(repr(mouse), u'< Animal Jerry (Tags: 1, 2) >')
def testNeq(self): self.assertTrue(self.mickey != Animal.fromRow('Jerry', '2')) self.assertTrue( self.mickey != Animal.fromRow('Mickey', '2', Sex='female')) self.assertFalse(self.mickey != Animal.fromRow('Mickey', '2')) animal = Animal(u'b\xf3br', '1') if sys.version_info < (3, 0): self.assertFalse(animal != 'b\xc3\xb3br') self.assertTrue(animal != 'bobr') self.assertFalse(animal != u'b\xf3br') self.assertTrue(animal != u'b\xc3\xb3br')
def testFromRow(self): jerry = Animal.fromRow('Jerry', '1', None, None) self.checkAttributes(jerry, [('Name', 'Jerry', unicode), ('Tag', {'1'}, frozenset), 'Sex', ('Notes', frozenset(), frozenset)]) self.assertTrue(allInstances(jerry.Tag, unicode)) mickey = Animal.fromRow('Mickey', '2', 'male', 'note') self.checkAttributes(mickey, [('Name', 'Mickey', unicode), ('Tag', {'2'}, frozenset), ('Sex', 'male', unicode), ('Notes', {'note'}, frozenset)]) self.assertTrue(allInstances(mickey.Tag, unicode)) self.assertTrue(allInstances(mickey.Notes, unicode))
def testMerge(self): mouse = Animal.fromRow('Mickey', '1') mouse.merge(self.mickey) self.assertEqual(mouse.Sex, 'male') self.assertEqual(mouse.Notes, {'bla'}) self.assertEqual(mouse.Tag, {'1', '2'}) self.assertIsInstance(mouse.Tag, frozenset) mouse.merge(Animal.fromRow('Mickey', '1')) self.assertEqual(mouse.Sex, 'male') self.assertRaises( Animal.DifferentMouseError, lambda: Animal.fromRow('Minnie', '1').merge(self.mickey)) self.assertRaises( Animal.DifferentMouseError, lambda: Animal.fromRow('Mickey', '1', 'female').merge(self.mickey)) mouse = Animal.fromRow('Mickey', '1', Notes='ble') mouse.merge(self.mickey) self.assertEqual(mouse.Notes, {'ble', 'bla'}) mouse.merge(self.mickey) self.assertEqual(mouse.Notes, {'ble', 'bla'})
def testLe(self): self.assertFalse(self.mickey <= Animal.fromRow('Jerry', '2')) self.assertTrue(Animal.fromRow('Jerry', '2') <= self.mickey) self.assertFalse(self.mickey <= 'Jerry') self.assertTrue(self.mickey <= 'Minnie') self.assertTrue( Animal.fromRow('Mickey', '2', Sex='Female') <= self.mickey) self.assertFalse( self.mickey <= Animal.fromRow('Mickey', '2', Sex='Female')) self.assertTrue(self.mickey <= Animal.fromRow('Mickey', '2')) self.assertTrue(Animal.fromRow('Mickey', '2') <= self.mickey) self.assertTrue(self.mickey <= 'Mickey') self.assertTrue(Animal(u'b\xf3br', '1') <= u'b\xf3br')
def testGt(self): self.assertTrue(self.mickey > Animal.fromRow('Jerry', '2')) self.assertFalse(Animal.fromRow('Jerry', '2') > self.mickey) self.assertTrue(self.mickey > 'Jerry') self.assertFalse(self.mickey > 'Minnie') self.assertFalse( Animal.fromRow('Mickey', '2', Sex='Female') > self.mickey) self.assertTrue( self.mickey > Animal.fromRow('Mickey', '2', Sex='Female')) self.assertFalse(self.mickey > Animal.fromRow('Mickey', '2')) self.assertFalse(Animal.fromRow('Mickey', '2') > self.mickey) self.assertFalse(self.mickey > 'Mickey') self.assertFalse(Animal(u'b\xf3br', '1') > u'b\xf3br')
def setUp(self): self.mickey = Animal(u'Mickey', frozenset({'2'}), u'male', frozenset({u'bla'}))
class TestAnimal(ICNodeTest): attributes = ['Name', 'Tag', 'Sex', 'Notes'] def setUp(self): self.mickey = Animal(u'Mickey', frozenset({'2'}), u'male', frozenset({u'bla'})) def testCreate(self): self.assertEqual(self.mickey.Name, 'Mickey') self.assertEqual(self.mickey.Tag, {'2'}) self.assertEqual(self.mickey.Sex, 'male') self.assertEqual(self.mickey.Notes, {'bla'}) def testFromRow(self): jerry = Animal.fromRow('Jerry', '1', None, None) self.checkAttributes(jerry, [('Name', 'Jerry', unicode), ('Tag', {'1'}, frozenset), 'Sex', ('Notes', frozenset(), frozenset)]) self.assertTrue(allInstances(jerry.Tag, unicode)) mickey = Animal.fromRow('Mickey', '2', 'male', 'note') self.checkAttributes(mickey, [('Name', 'Mickey', unicode), ('Tag', {'2'}, frozenset), ('Sex', 'male', unicode), ('Notes', {'note'}, frozenset)]) self.assertTrue(allInstances(mickey.Tag, unicode)) self.assertTrue(allInstances(mickey.Notes, unicode)) def testClone(self): animal = self.mickey.clone() for attr in self.attributes: if attr != 'Nosepokes': self.assertEqual(getattr(animal, attr), getattr(self.mickey, attr)) def testEq(self): self.assertTrue(self.mickey == Animal.fromRow('Mickey', '2')) self.assertTrue(Animal.fromRow('Mickey', '2') == self.mickey) self.assertFalse(self.mickey == Animal.fromRow('Jerry', '2')) self.assertFalse( self.mickey == Animal.fromRow('Mickey', '2', Sex='female')) animal = Animal.fromRow(u'b\xf3br', '1') if sys.version_info < (3, 0): self.assertTrue(animal == 'b\xc3\xb3br') self.assertFalse(animal == 'bobr') self.assertTrue(animal == u'b\xf3br') self.assertFalse(animal == u'b\xc3\xb3br') def testNeq(self): self.assertTrue(self.mickey != Animal.fromRow('Jerry', '2')) self.assertTrue( self.mickey != Animal.fromRow('Mickey', '2', Sex='female')) self.assertFalse(self.mickey != Animal.fromRow('Mickey', '2')) animal = Animal(u'b\xf3br', '1') if sys.version_info < (3, 0): self.assertFalse(animal != 'b\xc3\xb3br') self.assertTrue(animal != 'bobr') self.assertFalse(animal != u'b\xf3br') self.assertTrue(animal != u'b\xc3\xb3br') def testGt(self): self.assertTrue(self.mickey > Animal.fromRow('Jerry', '2')) self.assertFalse(Animal.fromRow('Jerry', '2') > self.mickey) self.assertTrue(self.mickey > 'Jerry') self.assertFalse(self.mickey > 'Minnie') self.assertFalse( Animal.fromRow('Mickey', '2', Sex='Female') > self.mickey) self.assertTrue( self.mickey > Animal.fromRow('Mickey', '2', Sex='Female')) self.assertFalse(self.mickey > Animal.fromRow('Mickey', '2')) self.assertFalse(Animal.fromRow('Mickey', '2') > self.mickey) self.assertFalse(self.mickey > 'Mickey') self.assertFalse(Animal(u'b\xf3br', '1') > u'b\xf3br') def testGe(self): self.assertTrue(self.mickey >= Animal.fromRow('Jerry', '2')) self.assertFalse(Animal.fromRow('Jerry', '2') >= self.mickey) self.assertTrue(self.mickey >= 'Jerry') self.assertFalse(self.mickey >= 'Minnie') self.assertFalse( Animal.fromRow('Mickey', '2', Sex='Female') >= self.mickey) self.assertTrue( self.mickey >= Animal.fromRow('Mickey', '2', Sex='Female')) self.assertTrue(self.mickey >= Animal.fromRow('Mickey', '2')) self.assertTrue(Animal.fromRow('Mickey', '2') >= self.mickey) self.assertTrue(self.mickey >= 'Mickey') self.assertTrue(Animal(u'b\xf3br', '1') >= u'b\xf3br') def testLt(self): self.assertFalse(self.mickey < Animal.fromRow('Jerry', '2')) self.assertTrue(Animal.fromRow('Jerry', '2') < self.mickey) self.assertFalse(self.mickey < 'Jerry') self.assertTrue(self.mickey < 'Minnie') self.assertTrue( Animal.fromRow('Mickey', '2', Sex='Female') < self.mickey) self.assertFalse( self.mickey < Animal.fromRow('Mickey', '2', Sex='Female')) self.assertFalse(self.mickey < Animal.fromRow('Mickey', '2')) self.assertFalse(Animal.fromRow('Mickey', '2') < self.mickey) self.assertFalse(self.mickey < 'Mickey') self.assertFalse(Animal(u'b\xf3br', '1') < u'b\xf3br') def testLe(self): self.assertFalse(self.mickey <= Animal.fromRow('Jerry', '2')) self.assertTrue(Animal.fromRow('Jerry', '2') <= self.mickey) self.assertFalse(self.mickey <= 'Jerry') self.assertTrue(self.mickey <= 'Minnie') self.assertTrue( Animal.fromRow('Mickey', '2', Sex='Female') <= self.mickey) self.assertFalse( self.mickey <= Animal.fromRow('Mickey', '2', Sex='Female')) self.assertTrue(self.mickey <= Animal.fromRow('Mickey', '2')) self.assertTrue(Animal.fromRow('Mickey', '2') <= self.mickey) self.assertTrue(self.mickey <= 'Mickey') self.assertTrue(Animal(u'b\xf3br', '1') <= u'b\xf3br') def testHash(self): self.assertEqual(hash(self.mickey), hash('Mickey')) @unittest.skipIf(sys.version_info >= (3, 0), 'Python3: tested by .testUnicode()') def testStr(self): animal = Animal.fromRow(u'b\xf3br', '1') self.assertEqual(str(animal), 'b\xc3\xb3br') self.assertIsInstance(str(animal), str) def testUnicode(self): animal = Animal.fromRow(u'b\xf3br', '1') self.assertEqual(unicode(animal), u'b\xf3br') self.assertIsInstance(unicode(animal), unicode) def testMerge(self): mouse = Animal.fromRow('Mickey', '1') mouse.merge(self.mickey) self.assertEqual(mouse.Sex, 'male') self.assertEqual(mouse.Notes, {'bla'}) self.assertEqual(mouse.Tag, {'1', '2'}) self.assertIsInstance(mouse.Tag, frozenset) mouse.merge(Animal.fromRow('Mickey', '1')) self.assertEqual(mouse.Sex, 'male') self.assertRaises( Animal.DifferentMouseError, lambda: Animal.fromRow('Minnie', '1').merge(self.mickey)) self.assertRaises( Animal.DifferentMouseError, lambda: Animal.fromRow('Mickey', '1', 'female').merge(self.mickey)) mouse = Animal.fromRow('Mickey', '1', Notes='ble') mouse.merge(self.mickey) self.assertEqual(mouse.Notes, {'ble', 'bla'}) mouse.merge(self.mickey) self.assertEqual(mouse.Notes, {'ble', 'bla'}) def testRepr(self): self.assertEqual(repr(self.mickey), u'< Animal Mickey (male; Tag: 2) >') mouse = Animal.fromRow('Jerry', '1') self.assertEqual(repr(mouse), u'< Animal Jerry (Tag: 1) >') mouse.merge(Animal.fromRow('Jerry', ' 2')) self.assertEqual(repr(mouse), u'< Animal Jerry (Tags: 1, 2) >') def testReadOnly(self): self.checkReadOnly(self.mickey) def testSlots(self): self.checkSlots(self.mickey) def testDel(self): self.checkDel(self.mickey)
def testUnicode(self): animal = Animal.fromRow(u'b\xf3br', '1') self.assertEqual(unicode(animal), u'b\xf3br') self.assertIsInstance(unicode(animal), unicode)
def testStr(self): animal = Animal.fromRow(u'b\xf3br', '1') self.assertEqual(str(animal), 'b\xc3\xb3br') self.assertIsInstance(str(animal), str)