Exemplo n.º 1
0
    def test_put_operation_2(self):
        with self.assertRaisesRegex(Operation.ChainError, "previous_operation_rev does not exist"):
            self.operation[2] = Operation(OperationRev.from_id(
                sha256(b'wrong hash').digest()), self.operation[2].address, self.operation[2].owners)

        sign_object(self.public_keys[0], self.private_keys[0], self.operation[1])

        self.operation[2] = Operation._construct_with_uuid(OperationRev.from_obj(self.operation[1]),
                                                           self.operation[2].uuid,
                                                           self.operation[2].address,
                                                           self.operation[2].owners)

        sign_object(self.public_keys[1], self.private_keys[1], self.operation[2])

        with self.assertRaisesRegex(Operation.UUIDError, "UUID mismatch"):
            self.operation[2].put()

        self.operation[2] = Operation._construct_with_uuid(OperationRev(),
                                                           self.operation[2].uuid,
                                                           self.operation[2].address,
                                                           self.operation[2].owners)

        sign_object(self.public_keys[1], self.private_keys[1], self.operation[2])
        self.operation[2].put()

        with self.assertRaisesRegex(Operation.DuplicationError, "object id already in the database"):
            self.operation[2].put()
Exemplo n.º 2
0
    def test_put_operation1(self):
        sign_object(self.public_keys[0], self.private_keys[0], self.operation[0])
        self.operation[0].put()

        self.operation[1] = Operation._construct_with_uuid(OperationRev(),
                                                           self.operation[0].uuid,
                                                           self.operation[1].address,
                                                           self.operation[1].owners)
        sign_object(self.public_keys[0], self.private_keys[0], self.operation[1])

        with self.assertRaisesRegex(Operation.UUIDError,
                                    "UUID of the minting operation does not fulfill the requirements"):
            self.operation[1].put()

        self.operation[1] = Operation(OperationRev.from_obj(self.operation[0]),
                                      self.operation[1].address,
                                      self.operation[1].owners)

        sign_object(self.public_keys[0], self.private_keys[0], self.operation[1])

        with self.assertRaises(Operation.OwnershipError):
            self.operation[1].put()

        sign_object(self.public_keys[1], self.private_keys[1], self.operation[1])

        self.operation[1].put()
Exemplo n.º 3
0
    def test_2_operation(self):
        sign_object(self.public_keys[1], self.private_keys[1], self.operation[0])
        self.operation[1] = Operation(OperationRev.from_obj(self.operation[0]),
                                      'http://new.example.com/', [self.public_keys[2]])
        sign_object(self.public_keys[2], self.private_keys[2], self.operation[1])
        self.operation[2] = Operation._construct_with_uuid(OperationRev.from_obj(self.operation[1]), uuid4(),
                                                           'http://new2.example.com', [])

        with self.assertRaisesRegex(Operation.UUIDError, "UUID mismatch"):
            sign_object(self.public_keys[2], self.private_keys[2], self.operation[2])
            self.operation[2].verify()

        self.operation[2] = Operation(OperationRev.from_obj(self.operation[1]), 'http://new2.example.com', [])
        sign_object(self.public_keys[2], self.private_keys[2], self.operation[2])
        self.operation[2].verify()