def test1(self): """ 必要データを作成し、集計情報をプロパティに持ったオブジェクトが格納されたリストが 返ってくるか。(1人の顧客に対して) """ LessonFactory(genre=self.genre_dict["英語"]) target_date = date(2019, 8, 1) lesson_log_list = Lesson.objects.filter( attending_date__year=target_date.year, attending_date__month=target_date.month) aggregator = Aggregator() actual = aggregator.get_monthly_billings(Account.objects.all(), lesson_log_list, self.genre_dict) self.assertEqual(len(actual), 1) # クラス確認 billing = actual[0] # プロパティ確認 self.assertEqual(billing.account_id, 1) self.assertEqual(billing.account_name, "太宰治") self.assertEqual(billing.genre_name_set, {"英語"}) self.assertEqual(billing.genre_names, "") self.assertEqual(billing.genre_num, 1) self.assertEqual(billing.attend_num, 1)
def test1(self): """ getで通常のアクセスが出来るかどうか""" lesson = LessonFactory() response = self.client.get(reverse("lesson:update", args=(lesson.id, ))) self.assertEqual(200, response.status_code) self.assertTemplateUsed(response, "lesson/lesson_update.html")
def setUp2(genre_dict): for gender in 1, 2: account_list = [] # 世代毎に顧客を生成(男女別) for age in range(10, 90, 10): account_list.append(AccountFactory(gender=gender, age=age)) for genre in ["ファイナンス", "プログラミング", "英語"]: for account in account_list: LessonFactory(genre=genre_dict[genre], account=account)
def test2(self): """ 指定日付の時請求一覧が表示されるかのテスト""" attending_date = date(2019, 8, 1) english_lesson = GenreFactory(name="英語") LessonFactory(genre=english_lesson, attending_date=attending_date) GenreFactory(name="ファイナンス") GenreFactory(name="プログラミング") response = self.client.get(reverse("billing:index"), data={"billing_yyyymm": "2019/08"}) self.assertContains(response, "太宰治") self.assertContains(response, "1レッスン")
def test2(self): """ データ更新後、リダイレクト出来るかの確認 そのデータに基づく値が返ってくるか """ account = AccountFactory() genre = GenreFactory(id=1) lesson_log = LessonFactory() response = self.client.post(reverse("lesson:update", args=(lesson_log.id, )), data={ "account": account.id, "genre": genre.id, "attending_date": datetime.date(2019, 5, 1), "attending_hour": 4 }) self.assertRedirects(response, reverse("lesson:index")) lesson_log.refresh_from_db() self.assertEqual(lesson_log.account.id, 1) self.assertEqual(lesson_log.genre.id, 1) self.assertEqual(lesson_log.attending_date, datetime.date(2019, 5, 1)) self.assertEqual(lesson_log.attending_hour, 4)
def test1(self): """ 英語: 受講者が英語のレッスンを受講した時の計算""" # 受講履歴を1つ登録 target_date = date(2019, 8, 1) LessonFactory(genre=self.genre_dict["英語"], attending_hour=10, target_date=target_date) lesson_log_list = Lesson.objects.filter( attending_date__year=target_date.year, attending_date__month=target_date.month) account_id = 1 actual = calculate_account_billing(account_id, lesson_log_list, self.genre_dict) self.assertEqual(actual, 40000)
def test3(self): """ バリデーションが通らなかった場合""" lesson_log = LessonFactory() genre = GenreFactory() response = self.client.post(reverse("lesson:update", args=(lesson_log.id, )), data={ "account": "", "genre": genre.id, "attending_date": datetime.date(2019, 5, 1), "attending_hour": 4 }) self.assertEqual(400, response.status_code) self.assertTemplateUsed(response, "lesson/lesson_update.html") self.assertFalse(response.context['form'].is_valid())
def test1(self): """ ジャンルと性別別に、選択年月のレッスン数・受講者数・売り上げ金額を表示するか確認 """ target_date = date(2019, 8, 1) billing_year = target_date.year billing_month = target_date.month target_queryset_dict = create_target_queryset_dict( billing_year, billing_month) # 男性顧客で各科目の受講を登録 LessonFactory(genre=self.genre_dict["英語"], attending_date=target_date) LessonFactory(genre=self.genre_dict["ファイナンス"], attending_date=target_date) LessonFactory(genre=self.genre_dict["プログラミング"], attending_date=target_date) # 女性顧客で各科目の受講を登録 account = AccountFactory(name="与謝野晶子", gender=2) LessonFactory(genre=self.genre_dict["英語"], account=account, attending_date=target_date) LessonFactory(genre=self.genre_dict["ファイナンス"], account=account, attending_date=target_date) LessonFactory(genre=self.genre_dict["プログラミング"], account=account, attending_date=target_date) aggregator = ReportAggregator() actual = aggregator.analye_genre_gender_trend(target_queryset_dict, self.genre_dict) self.assertEqual(len(actual), 6) report = actual[0] self.assertEqual(report.genre_name, "ファイナンス") report = actual[1] self.assertEqual(report.genre_name, "ファイナンス") report = actual[2] self.assertEqual(report.genre_name, "プログラミング") report = actual[3] self.assertEqual(report.genre_name, "プログラミング") report = actual[4] self.assertEqual(report.genre_name, "英語") report = actual[5] self.assertEqual(report.genre_name, "英語")
def test1(self): """ 英語 : 4時間受講した場合 """ genre = GenreFactory(name="英語", basic_rate=5000) lesson_log = LessonFactory(genre=genre, attending_hour=4) actual = lesson_log.payment() self.assertEqual(actual, 19000)
def test3_ptn4(self): """ プログラミング : 55時間受講した場合""" genre = GenreFactory(name="プログラミング", basic_rate=20000) lesson_log = LessonFactory(genre=genre, attending_hour=55) actual = lesson_log.payment() self.assertEqual(actual, 164500)
def test2_ptn3(self): """ ファイナンス : 55時間受講した場合""" genre = GenreFactory(name="ファイナンス", basic_rate=0) lesson_log = LessonFactory(genre=genre, attending_hour=55) actual = lesson_log.payment() self.assertEqual(actual, 153500)