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)
Esempio n. 2
0
    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)