def test_3_get_and_remove(self): sign_object(self.public_key, self.private_key, self.operations[0]) self.operations[1] = Operation(OperationRev.from_obj(self.operations[0]), self.operations[1].address, self.operations[1].owners) for op in self.operations: sign_object(self.public_key, self.private_key, op) op.put() for op in self.operations: new_op = Operation.get(op.id) self.assertEqual(new_op.id, op.id) self.assertCountEqual(Operation.get_ids_list(), [op.id for op in self.operations]) self.operations[1].remove() self.operations[0].remove() self.assertCountEqual(Operation.get_ids_list(), [self.operations[2].id]) self.operations[2].remove() for op in self.operations: with self.assertRaises(Operation.DoesNotExist): op.remove() self.assertEqual(Operation.get_ids_list(), [])
def test_no_database(self): with self.assertRaisesRegex(pmpi.database.Database.InitialisationError, "initialise database first"): Operation.get_ids_list() with self.assertRaisesRegex(pmpi.database.Database.InitialisationError, "initialise database first"): Operation.get(sha256(b'something').digest()) operation = Operation(OperationRev(), 'http://example.com/', []) sk = SigningKey.generate() sign_object(PublicKey.from_signing_key(sk), sk, operation) with self.assertRaisesRegex(pmpi.database.Database.InitialisationError, "initialise database first"): operation.put(BlockRev()) with self.assertRaisesRegex(pmpi.database.Database.InitialisationError, "initialise database first"): operation.remove(BlockRev())
def test_2_put(self): sign_object(self.public_key, self.private_key, self.operations[0]) self.operations[0].put() with self.assertRaisesRegex(Operation.DuplicationError, "object id already in the database"): self.operations[0].put() self.operations[1] = Operation(OperationRev.from_obj(self.operations[0]), self.operations[1].address, self.operations[1].owners) sign_object(self.public_key, self.private_key, self.operations[1]) self.operations[1].put() sign_object(self.public_key, self.private_key, self.operations[2]) self.operations[2].put() revision_id_list = Operation.get_ids_list() self.assertEqual(len(revision_id_list), 3) self.assertCountEqual(revision_id_list, [op.id for op in self.operations])
def test_0_empty(self): self.assertEqual(len(Operation.get_ids_list()), 0)