def test_that_claim_deposit_return_none_for_provider_if_provider_has_less_funds_than_needed(self): with mock.patch('core.payments.service.get_deposit_value', return_value=1) as get_deposit_value: with self.assertRaises(TooSmallProviderDeposit): claim_deposit( subtask_id=self.task_to_compute.subtask_id, concent_use_case=ConcentUseCase.ADDITIONAL_VERIFICATION, requestor_ethereum_address=self.task_to_compute.requestor_ethereum_address, provider_ethereum_address=self.task_to_compute.provider_ethereum_address, subtask_cost=1, requestor_public_key=hex_to_bytes_convert(self.task_to_compute.requestor_public_key), provider_public_key=hex_to_bytes_convert(self.task_to_compute.provider_public_key), ) self.assertEqual(get_deposit_value.call_count, 2)
def test_that_claim_deposit_return_only_requestors_deposit_claim_if_requestor_has_enough_funds_and_it_is_not_additional_verification( self): with mock.patch('core.payments.service.get_deposit_value', return_value=1) as get_deposit_value: (claim_against_requestor, claim_against_provider) = claim_deposit( subtask_id=self.task_to_compute.subtask_id, concent_use_case=ConcentUseCase.FORCED_ACCEPTANCE, requestor_ethereum_address=self.task_to_compute. requestor_ethereum_address, provider_ethereum_address=self.task_to_compute. provider_ethereum_address, subtask_cost=1, requestor_public_key=hex_to_bytes_convert( self.task_to_compute.requestor_public_key), provider_public_key=hex_to_bytes_convert( self.task_to_compute.provider_public_key), ) self.assertIsInstance(claim_against_requestor, DepositClaim) self.assertEqual(claim_against_requestor.subtask_id, self.task_to_compute.subtask_id) self.assertEqual(claim_against_requestor.payee_ethereum_address, self.task_to_compute.provider_ethereum_address) self.assertEqual(claim_against_requestor.amount, self.subtask_cost) self.assertEqual(claim_against_requestor.concent_use_case, ConcentUseCase.FORCED_ACCEPTANCE) self.assertIsNone(claim_against_provider) self.assertEqual(get_deposit_value.call_count, 1)
def test_that_claim_deposit_return_deposit_claims_if_both_requestor_and_provider_have_enough_funds(self): with mock.patch('core.payments.service.get_deposit_value', return_value=2) as get_deposit_value: (claim_against_requestor, claim_against_provider) = claim_deposit( subtask_id=self.task_to_compute.subtask_id, concent_use_case=ConcentUseCase.ADDITIONAL_VERIFICATION, requestor_ethereum_address=self.task_to_compute.requestor_ethereum_address, provider_ethereum_address=self.task_to_compute.provider_ethereum_address, subtask_cost=self.subtask_cost, requestor_public_key=hex_to_bytes_convert(self.task_to_compute.requestor_public_key), provider_public_key=hex_to_bytes_convert(self.task_to_compute.provider_public_key), ) self.assertIsInstance(claim_against_requestor, DepositClaim) self.assertEqual(claim_against_requestor.subtask_id, self.task_to_compute.subtask_id) self.assertEqual(claim_against_requestor.payee_ethereum_address, self.task_to_compute.provider_ethereum_address) self.assertEqual(claim_against_requestor.amount, self.subtask_cost) self.assertEqual(claim_against_requestor.concent_use_case, ConcentUseCase.ADDITIONAL_VERIFICATION) self.assertIsInstance(claim_against_provider, DepositClaim) self.assertEqual(claim_against_provider.subtask_id, self.task_to_compute.subtask_id) self.assertEqual( claim_against_provider.payee_ethereum_address, ethereum_public_key_to_address(settings.CONCENT_ETHEREUM_PUBLIC_KEY) ) self.assertEqual(claim_against_provider.amount, settings.ADDITIONAL_VERIFICATION_COST) self.assertEqual(claim_against_provider.concent_use_case, ConcentUseCase.ADDITIONAL_VERIFICATION) self.assertEqual(get_deposit_value.call_count, 2)
def test_that_claim_deposit_return_nones_if_requestor_has_zero_funds(self): with mock.patch('core.payments.service.get_deposit_value', return_value=0) as get_deposit_value: (claim_against_requestor, claim_against_provider) = claim_deposit( subtask_id=self.task_to_compute.subtask_id, concent_use_case=ConcentUseCase.ADDITIONAL_VERIFICATION, requestor_ethereum_address=self.task_to_compute.requestor_ethereum_address, provider_ethereum_address=self.task_to_compute.provider_ethereum_address, subtask_cost=1, requestor_public_key=hex_to_bytes_convert(self.task_to_compute.requestor_public_key), provider_public_key=hex_to_bytes_convert(self.task_to_compute.provider_public_key), ) self.assertIsNone(claim_against_requestor) self.assertIsNone(claim_against_provider) self.assertEqual(get_deposit_value.call_count, 2)