Example #1
0
    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)
Example #2
0
    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))
Example #3
0
    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)
Example #5
0
 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)
Example #6
0
    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)
Example #7
0
 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)
Example #8
0
 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)
Example #9
0
 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)
Example #10
0
 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)
Example #11
0
 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)
Example #12
0
 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)
Example #13
0
 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)
Example #14
0
 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)
Example #15
0
    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()
Example #16
0
 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)
Example #17
0
 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)
Example #18
0
 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)
Example #19
0
    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)
Example #20
0
    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)
Example #21
0
 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)
Example #22
0
 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)
Example #23
0
 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)
Example #24
0
 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)
Example #27
0
    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)
Example #28
0
    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))
Example #29
0
 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)
Example #30
0
 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)