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
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], [])
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)
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
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], [])