Example #1
0
    def test_make_transfer(self):
        validated_data = {
            'from_user_id': 1,
            'to_inn': '123',
            'amount': Decimal(10)
        }
        transfer = Transfer(**validated_data)
        from_profile = Profile(id=1, user_id=1, bill=15)
        inn_bills = [Decimal(1), Decimal(2), Decimal(3)]
        inn_profiles = [
            Profile(bill=bill, id=i + 1) for i, bill in enumerate(inn_bills)
        ]

        service = TransferService()
        service._get_transfer_model = MagicMock(return_value=transfer)
        service._load_from_profile = MagicMock(return_value=from_profile)
        service._check_user_balance = MagicMock(return_value=None)
        service._load_inn_profiles = MagicMock(return_value=inn_profiles)
        service._apply_transfer = MagicMock(return_value=None)
        transfer.save = MagicMock(return_value=None)

        service.make_transfer(validated_data)

        service._get_transfer_model.assert_called_with(validated_data)
        service._load_from_profile.assert_called_with(transfer)
        service._check_user_balance.assert_called_with(from_profile,
                                                       transfer.amount)
        service._load_inn_profiles.assert_called_with(transfer)
        service._apply_transfer.assert_called_with(from_profile, inn_profiles,
                                                   transfer.amount)
        transfer.save.assert_called_with(from_profile, inn_profiles)
Example #2
0
    def mutate(self, info, name, amount, date, to):
        transfer = Transfer(from_user=info.context.user,
                            to_user=User.objects.get(pk=to),
                            amount=amount,
                            name=name,
                            date=date)
        transfer.save()

        return transfer
Example #3
0
 def test_get_user_transfers_should_not_return_other_user_transfer(self):
     transfer = Transfer(name="transfer from user",
                         amount=123,
                         date=datetime.date(2018, 11, 20),
                         from_user=self.other_user,
                         to_user=self.other_user)
     transfer.save()
     fetched_transfers = Transfer.get_user_transfers(
         2018, 11, self.fetching_user)
     self.assertListEqual([t.id for t in fetched_transfers], [])
Example #4
0
def load(request):
    # todo:only authenticated admin
    # todo:better error logging
    # todo:show a 'loading' gif/canvas while loading, even better - status reports
    # todo:no double loads!
    # todo: allow to load more files
    file = open("transfers/changes_2011.csv", "rb")
    # print (file)
    changes_to_load = unicode_csv_reader(file)

    for k, row in enumerate(changes_to_load):
        # print (row)
        try:
            o = Transfer(
                line_num=k,
                year=row[0],
                section=row[1],
                request=row[2],
                description=row[3],
                change_code=row[4],
                change_name=row[5],
                request_code=row[6],
                request_type=row[7],
                committee_num=row[8],
                plan_code=row[9],
                plan_name=row[10],
                sum_neto=int("".join(row[11].split(","))),
                sum_conditional=int("".join(row[12].split(","))),
                planned_income=int("".join(row[13].split(","))),
                sum_permission=int("".join(row[14].split(","))),
                max_jobs=row[15],
            )
            o.save()
            print("saved:", o)

        except Exception as e:
            print("some error in line:", k)
            error = Error(line_num=k, timestamp=timezone.now(), problem=e)
            error.save()
            continue
            # print (0)

    file.close()
    print("Loading Ended")
    return "<p>loading done</p>"  # todo:return something more useful with some statistics..file name, number of raws
Example #5
0
    def test_get_user_transfers_should_not_return_transfer_outside_year_requested(
            self):
        transfer_before = Transfer(name="transfer from user",
                                   amount=123,
                                   date=datetime.date(2017, 11, 20),
                                   from_user=self.fetching_user,
                                   to_user=self.fetching_user)
        transfer_before.save()

        transfer_after = Transfer(name="transfer from user",
                                  amount=123,
                                  date=datetime.date(2019, 11, 20),
                                  from_user=self.fetching_user,
                                  to_user=self.fetching_user)
        transfer_after.save()

        fetched_transfers = Transfer.get_user_transfers(
            2018, 11, self.fetching_user)
        self.assertListEqual([t.id for t in fetched_transfers], [])
Example #6
0
 def _get_transfer_model(validated_data):
     return Transfer(**validated_data)
Example #7
0
 def create(self, validated_data):
     return Transfer(**validated_data)
Example #8
0
    def resolve_transfers(self, info, **kwargs):
        year = kwargs.get('year')
        month = kwargs.get('month')

        return Transfer.get_user_transfers(year, month, info.context.user)