Example #1
0
    def test_happy_path(self,
                          ctx,
                          transaction_manager: TransactionManager):
        req = AbstractTransaction(
            src='1',
            dst='2',
            name='test',
            value=-1,
            payment_method='1',
            attachments=None

        )
        with raises(ValidationError):
            transaction_manager.update_or_create(ctx, req)
Example #2
0
    def test_happy_path_create(self,
                               ctx,
                               mock_transaction_repository: TransactionRepository,
                               transaction_manager: TransactionManager,
                               sample_transaction: Transaction):
        req = AbstractTransaction(
            src='1',
            dst='2',
            name='test',
            value=1,
            payment_method='1',
            attachments=None
        )
        mock_transaction_repository.create = MagicMock(return_value=(sample_transaction))

        _, c = transaction_manager.update_or_create(ctx, req)

        assert c is True
        mock_transaction_repository.create.assert_called_once_with(ctx, req)
Example #3
0
    def test_happy_path_create_only_admin(self,
                               ctx_only_admin,
                               mock_transaction_repository: TransactionRepository,
                               transaction_manager: TransactionManager,
                               sample_transaction_pending: Transaction):
        req = AbstractTransaction(
            src=sample_transaction_pending.src,
            dst=sample_transaction_pending.dst,
            name=sample_transaction_pending.name,
            value=sample_transaction_pending.value,
            payment_method=sample_transaction_pending.payment_method,
            attachments=sample_transaction_pending.attachments
        )
        mock_transaction_repository.create = MagicMock(return_value=(sample_transaction_pending))

        r, c = transaction_manager.update_or_create(ctx_only_admin, req)

        assert r.pending_validation
        assert c is True
        mock_transaction_repository.create.assert_called_once_with(ctx_only_admin, req)
Example #4
0
    def test_happy_path_update(self,
                               ctx,
                               mock_transaction_repository: TransactionRepository,
                               transaction_manager: TransactionManager,
                               sample_transaction: Transaction):
        req = AbstractTransaction(
            src=sample_transaction.src,
            dst=sample_transaction.dst,
            name=sample_transaction.name,
            value=sample_transaction.value,
            payment_method=sample_transaction.payment_method,
            attachments=sample_transaction.attachments
        )
        mock_transaction_repository.create = MagicMock(return_value=(sample_transaction))
        mock_transaction_repository.get_by_id = MagicMock(return_value=(sample_transaction))
        mock_transaction_repository.update = MagicMock(return_value=(sample_transaction))

        _, c = transaction_manager.update_or_create(ctx, req, sample_transaction.id)

        assert c is False
        mock_transaction_repository.create.assert_not_called()
        mock_transaction_repository.get_by_id.assert_called_once()
        mock_transaction_repository.update.assert_called_once()
Example #5
0
    def test_happy_path_create_add_cashbox(self,
                               ctx,
                               mock_transaction_repository: TransactionRepository,
                                           mock_cashbox_repository: CashboxRepository,
                               transaction_manager: TransactionManager,
                               sample_transaction: Transaction):
        sample_transaction.cashbox = "to"
        req = AbstractTransaction(
            src=sample_transaction.src,
            dst=sample_transaction.dst,
            name=sample_transaction.name,
            value=sample_transaction.value,
            payment_method=sample_transaction.payment_method,
            attachments=sample_transaction.attachments
        )
        mock_transaction_repository.create = MagicMock(return_value=(sample_transaction))
        mock_cashbox_repository.update = MagicMock(return_value=(None))

        _, c = transaction_manager.update_or_create(ctx, req)

        assert c is True
        mock_transaction_repository.create.assert_called_once_with(ctx, req)
        mock_cashbox_repository.update.assert_called_once_with(ctx, value_modifier=sample_transaction.value, transaction=sample_transaction)