def setUp(self): self._checksum = "1234567890" self._other_replica = DataObjectReplica(99, self._checksum) self._replicas = [DataObjectReplica(i, self._checksum, str(i), str(i), True) for i in range(10)] self._collection = DataObjectReplicaCollection(self._replicas)
class TestDataObjectReplicaCollection(unittest.TestCase): """ Tests for `DataObjectReplicaCollection`. """ def setUp(self): self._checksum = "1234567890" self._other_replica = DataObjectReplica(99, self._checksum) self._replicas = [DataObjectReplica(i, self._checksum, str(i), str(i), True) for i in range(10)] self._collection = DataObjectReplicaCollection(self._replicas) def test_init_with_no_initial(self): self.assertEqual(len(DataObjectReplicaCollection()), 0) def test_init_with_initial(self): self.assertCountEqual(self._collection, self._replicas) def test_get_by_number_when_does_not_exist(self): self.assertIsNone(self._collection.get_by_number(10)) def test_get_by_number_when_exists(self): self.assertEqual(self._collection.get_by_number(0), self._replicas[0]) def test_get_out_of_date_when_none(self): self.assertEqual(len(self._collection.get_out_of_date()), 0) def test_get_out_of_date_when_out_of_date_exist(self): self._replicas[1].up_to_date = False self._replicas[5].up_to_date = False self.assertCountEqual(self._collection.get_out_of_date(), [self._replicas[1], self._replicas[5]]) def test_add_when_does_not_contain(self): self._collection.add(self._other_replica) self.assertEqual(self._collection.get_by_number(self._other_replica.number), self._other_replica) def test_add_when_does_contain(self): self.assertRaises(ValueError, self._collection.add, self._replicas[0]) def test_remove_by_number_when_not_exists(self): self.assertRaises(ValueError, self._collection.remove, self._other_replica.number) def test_remove_by_number_when_exists(self): self._collection.remove(self._replicas[0].number) self.assertIsNone(self._collection.get_by_number(self._replicas[0].number)) self.assertNotIn(self._replicas[0], self._collection) def test_remove_by_object_when_not_exists(self): self.assertRaises(ValueError, self._collection.remove, self._other_replica) def test_remove_by_object_when_exists(self): self._collection.remove(self._replicas[0]) self.assertNotIn(self._replicas[0], self._collection) def test_remove_by_unsupported_type(self): self.assertRaises(TypeError, self._collection.remove, None) def test_eq_when_not_equal(self): another_collection = DataObjectReplicaCollection() self.assertNotEqual(another_collection, self._collection) def test_eq_when_equal(self): self.assertEqual(copy.copy(self._collection), self._collection) def test_len(self): self.assertEqual(len(self._collection), len(self._replicas)) def test_iter(self): retrieved = [] for data_object_replica in self._collection: retrieved.append(data_object_replica) self.assertCountEqual(retrieved, self._replicas) def test_contains(self): self.assertIn(self._replicas[0], self._collection)