def test_post_guest(self): # 更新前の値を確認 data = Data.get(1) self.assertEqual(data.date, date(1999, 12, 31)) self.assertEqual(data.item, '松屋') self.assertEqual(data.price, 500) self.assertEqual(data.direction.pk, 2) self.assertEqual(data.method.pk, 1) self.assertEqual(data.category.pk, 1) self.assertEqual(data.temp, False) self.assertEqual(data.checked, True) response = self.client.post( reverse('moneybook:edit', kwargs={'pk': 1}), { 'date': '2000-4-1', 'item': 'テスト項目1', 'price': 10000, 'direction': 1, 'method': 2, 'category': 2, 'temp': True, 'checked': False }) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('moneybook:login')) # 更新されていないことを確認 data = Data.get(1) self.assertEqual(data.date, date(1999, 12, 31)) self.assertEqual(data.item, '松屋') self.assertEqual(data.price, 500) self.assertEqual(data.direction.pk, 2) self.assertEqual(data.method.pk, 1) self.assertEqual(data.category.pk, 1) self.assertEqual(data.temp, False) self.assertEqual(data.checked, True)
def get(self, request, *args, **kwargs): # 全データ all_data = Data.get_all_data() # 支払い方法リスト methods = Method.list() # 支払い方法ごとの残高 methods_bd = [] for m in methods: d = Data.get_method_data(all_data, m.pk) # 銀行はチェック済みだけ if m.pk == Method.get_bank().pk: d = Data.get_checked_data(d) methods_bd.append({ 'pk': m.pk, 'name': m.name, 'balance': Data.get_income_sum(d) - Data.get_outgo_sum(d), 'year': CheckedDate.get(m.pk).date.year, 'month': CheckedDate.get(m.pk).date.month, 'day': CheckedDate.get(m.pk).date.day }) return HttpResponse(json.dumps(methods_bd))
def post(self, request, *args, **kwargs): if "year" not in request.POST or "month" not in request.POST or "day" not in request.POST or "method" not in request.POST: return HttpResponseBadRequest( json.dumps({"message": "missing parameter"})) method_pk = request.POST.get("method") try: new_date = date(int(request.POST.get("year")), int(request.POST.get("month")), int(request.POST.get("day"))) # 指定日以前のを全部チェック if "check_all" in request.POST and request.POST.get( "check_all") == "1": Data.filter_checkeds( Data.get_method_data(Data.get_range_data(None, new_date), method_pk), [False]).update(checked=True) except ValueError: return HttpResponseBadRequest( json.dumps({"message": "date format is invalid"})) try: # チェック日を更新 CheckedDate.set(method_pk, new_date) except CheckedDate.DoesNotExist: return HttpResponseBadRequest( json.dumps({"message": "method id is invalid"})) return HttpResponse()
def test_post(self): self.client.force_login(User.objects.create_user(self.username)) before_count = Data.get_all_data().count() response = self.client.post( reverse('moneybook:add_intra_move'), { 'year': 2000, 'month': 4, 'day': 1, 'item': '内部移動テスト', 'price': 20000, 'before_method': 2, 'after_method': 3, }) self.assertEqual(response.status_code, 200) self.assertEqual(response.content.decode(), '') after_count = Data.get_all_data().count() self.assertEqual(after_count, before_count + 2) before = Data.get_all_data()[after_count - 2] self.assertEqual(before.date, date(2000, 4, 1)) self.assertEqual(before.item, '内部移動テスト') self.assertEqual(before.price, 20000) self.assertEqual(before.direction.pk, 2) self.assertEqual(before.method.pk, 2) self.assertEqual(before.category.pk, 4) self.assertEqual(before.temp, False) self.assertEqual(before.checked, False) after = Data.get_all_data()[after_count - 1] self.assertEqual(after.date, date(2000, 4, 1)) self.assertEqual(after.item, '内部移動テスト') self.assertEqual(after.price, 20000) self.assertEqual(after.direction.pk, 1) self.assertEqual(after.method.pk, 3) self.assertEqual(after.category.pk, 4) self.assertEqual(after.temp, False) self.assertEqual(after.checked, False)
def test_get(self): self.client.force_login(User.objects.create_user(self.username)) before_count = Data.get_all_data().count() response = self.client.get(reverse('moneybook:delete'), {'pk': 1}) self.assertEqual(response.status_code, 405) after_count = Data.get_all_data().count() self.assertEqual(after_count, before_count)
def get(self, request, *args, **kwargs): now = datetime.now() # 全データ all_data = Data.get_all_data() # 現在銀行 banks = BankBalance.get_all() # クレカ確認日 credit_checked_date = CreditCheckedDate.get_all() today = date.today() for c in credit_checked_date: # 日付が過ぎていたらpriceを0にする if c.date <= today: c.price = 0 # 銀行残高 all_bank_data = Data.get_bank_data(all_data) checked_bank_data = Data.get_checked_data(all_bank_data) bank_written = Data.get_income_sum( checked_bank_data) - Data.get_outgo_sum(checked_bank_data) context = { 'year': now.year, 'banks': banks, 'credit_checked_date': credit_checked_date, 'bank_written': bank_written, } return render(request, "_several_checked_date.html", context)
def test_post_guest(self): before_count = Data.get_all_data().count() response = self.client.post(reverse('moneybook:delete'), {'pk': 1}) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, reverse('moneybook:login')) after_count = Data.get_all_data().count() self.assertEqual(after_count, before_count)
def test_get_method_data(self): month_data = Data.get_month_data(2000, 1) data = Data.get_method_data(month_data, 3) expects = [ "PayPayチャージ", "立替分1" ] self._assert_list(data, expects)
def test_get_keyword_data_part(self): base_data = Data.get_month_data(2000, 1) data = Data.get_keyword_data(base_data, "分") expects = [ "立替分1", "立替分2" ] self._assert_list(data, expects)
def test_filter_temps(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_temps(base_data, [True]) expects = [ "立替分1", "立替分2" ] self._assert_list(data, expects)
def test_filter_price_upper(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_price(base_data, None, 130) expects = [ "コンビニ", "その他1", "貯金" ] self._assert_list(data, expects)
def test_filter_categories(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_categories(base_data, [1]) expects = [ "コンビニ", "スーパー", "立替分1" ] self._assert_list(data, expects)
def get(self, request, *args, **kwargs): # 全データ all_data = Data.get_all_data() # 未承認トランザクション unchecked_data = Data.get_unchecked_data(all_data) context = { 'unchecked_data': unchecked_data, } return render(request, "_unchecked_data.html", context)
def test_get_category_data(self): month_data = Data.get_month_data(2000, 1) data = Data.get_category_data(month_data, 1) expects = [ "コンビニ", "スーパー", "立替分1" ] self._assert_list(data, expects)
def post(self, request, *args, **kwargs): pk = request.POST.get("pk") try: Data.get(pk).delete() except: res = {"message": "Data does not exist"} return HttpResponseBadRequest(json.dumps(res)) return HttpResponse()
def test_filter_price_lower(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_price(base_data, 3000, None) expects = [ "給与", "必需品2", "現金収入", "銀行収入" ] self._assert_list(data, expects)
def test_filter_price(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_price(base_data, 100, 400) expects = [ "コンビニ", "貯金", "ガス代", "立替分1" ] self._assert_list(data, expects)
def test_get_cash_data(self): base_data = Data.get_month_data(2000, 1) data = Data.get_cash_data(base_data) expects = [ "コンビニ", "その他1", "必需品2", "現金収入", "スーパー" ] self._assert_list(data, expects)
def test_post_guest(self): # もともとfalseであることを確認 data = Data.get(4) self.assertEqual(data.checked, False) response = self.client.post(reverse('moneybook:edit_check'), {'id': 4}) self.assertEqual(response.status_code, 403) # 更新されていないことを確認 data = Data.get(4) self.assertEqual(data.checked, False)
def test_post(self): self.client.force_login(User.objects.create_user(self.username)) # もともとfalseであることを確認 data = Data.get(4) self.assertEqual(data.checked, False) response = self.client.post(reverse('moneybook:edit_check'), {'id': 4}) self.assertEqual(response.status_code, 200) # 更新されていることを確認 data = Data.get(4) self.assertEqual(data.checked, True)
def test_filter_directions(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_directions(base_data, [1]) expects = [ "給与", "現金収入", "銀行収入", "PayPayチャージ", "立替分1", "立替分2" ] self._assert_list(data, expects)
def test_get_unchecked_data(self): base_data = Data.get_month_data(2000, 1) data = Data.get_unchecked_data(base_data) expects = [ "必需品1", "スーパー", "計算外", "貯金", "PayPayチャージ", "立替分1" ] self._assert_list(data, expects)
def test_filter_checkeds(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_checkeds(base_data, [False]) expects = [ "必需品1", "スーパー", "計算外", "貯金", "PayPayチャージ", "立替分1" ] self._assert_list(data, expects)
def test_filter_methods(self): base_data = Data.get_month_data(2000, 1) data = Data.filter_methods(base_data, [1, 3]) expects = [ "コンビニ", "その他1", "必需品2", "現金収入", "スーパー", "PayPayチャージ", "立替分1", ] self._assert_list(data, expects)
def test_post_guest(self): before_count = Data.get_all_data().count() response = self.client.post( reverse('moneybook:add_intra_move'), { 'year': 2000, 'month': 4, 'day': 1, 'item': '内部移動テスト', 'price': 20000, 'before_method': 2, 'after_method': 3, }) self.assertEqual(response.status_code, 403) after_count = Data.get_all_data().count() self.assertEqual(after_count, before_count)
def test_post_missing_item(self): self.client.force_login(User.objects.create_user(self.username)) before_count = Data.get_all_data().count() response = self.client.post( reverse('moneybook:add_intra_move'), { 'year': 2000, 'month': 4, 'day': 1, 'price': 20000, 'before_method': 2, 'after_method': 3, }) self.assertEqual(response.status_code, 400) self.assertEqual(response.content.decode(), '') after_count = Data.get_all_data().count() self.assertEqual(after_count, before_count)
def get(self, request, *args, **kwargs): pk = kwargs["pk"] try: data = Data.get(pk) except: return redirect('moneybook:index') context = { 'app_name': settings.APP_NAME, 'username': request.user, 'data': data, 'directions': Direction.list(), 'methods': Method.list(), 'first_categories': Category.first_list(), 'latter_categories': Category.latter_list(), 'temps': { 0: "No", 1: "Yes" }, 'checkeds': { 0: "No", 1: "Yes" }, } return render(request, "edit.html", context)
def post(self, request, *args, **kwargs): pk = kwargs["pk"] try: data = Data.get(pk) except: return HttpResponseBadRequest( json.dumps({"message": "Data does not exist"})) new_data = DataForm(request.POST) if new_data.is_valid(): # データ更新 data.date = request.POST.get("date") data.item = request.POST.get("item") data.price = request.POST.get("price") data.direction = Direction.get(request.POST.get("direction")) data.method = Method.get(request.POST.get("method")) data.category = Category.get(request.POST.get("category")) data.temp = request.POST.get("temp") data.checked = request.POST.get("checked") data.save() return HttpResponse() else: res_data = {} error_list = [] for a in new_data.errors: error_list.append(a) res_data["ErrorList"] = error_list return HttpResponseBadRequest(json.dumps(res_data))
def test_get_bank_data(self): base_data = Data.get_month_data(2000, 1) data = Data.get_bank_data(base_data) expects = [ "給与", "必需品1", "銀行収入", "計算外", "貯金", "PayPayチャージ", "電気代", "ガス代", "水道代", "立替分2" ] self._assert_list(data, expects)
def test_post_guest(self): before_count = Data.get_all_data().count() response = self.client.post( reverse('moneybook:add'), { 'date': '2000-4-1', 'item': 'テスト項目1', 'price': 10000, 'direction': 2, 'method': 2, 'category': 1, 'temp': False, 'checked': False }) self.assertEqual(response.status_code, 403) after_count = Data.get_all_data().count() self.assertEqual(after_count, before_count)