def test_select_display_players(self): """ Teamsにレコードが存在しない場合 -> 空の辞書を返す ModelSettingsのis_used_limit_choices_toがTrue -> 空の辞書を返す eamsにレコードが存在して、最新レコードが period == 1(夏) -> {"admission_year__gte": teams.year - 2, "admission_year__lte": teams.year} -> 3学年分表示させる period == 2(秋) -> {"admission_year__gte": teams.year - 1, "admission_year__lte": teams.year} -> 2学年分表示させる """ self.assertEqual(DefaultValueExtractor.select_display_players(), {}) Teams(year=1985, period=1).save() self.assertEqual(DefaultValueExtractor.select_display_players(), { "admission_year__gte": 1983, "admission_year__lte": 1985 }) Teams(year=1985, period=2).save() self.assertEqual(DefaultValueExtractor.select_display_players(), { "admission_year__gte": 1984, "admission_year__lte": 1985 }) ModelSettings(is_used_limit_choices_to=True).save() self.assertEqual(DefaultValueExtractor.select_display_players(), {}) ModelSettings(is_used_limit_choices_to=False).save() self.assertEqual(DefaultValueExtractor.select_display_players(), { "admission_year__gte": 1984, "admission_year__lte": 1985 })
def test_unique_key_check(self): """(year, period)""" period = ChoicesFormatter.period_choices_to_dict() Teams(year=1985, period=period['夏']).save() Teams(year=1985, period=period['秋']).save() self.assertEqual(Teams.objects.count(), 2) with self.assertRaises(Exception): Teams(year=1985, period=period['夏']).save()
def test_unique_key_check(self): """team_id""" period = ChoicesFormatter.period_choices_to_dict() Teams(year=1985, period=period['夏']).save() Teams(year=1985, period=period['秋']).save() t1 = Teams.objects.get(year=1985, period=period['夏']) with self.assertRaises(Exception): TeamTotalResults(team=t1).save()
def test_create_default_team_id(self): """ Teamsにレコードが存在しない場合 -> 1939(初期値) Teamsにレコードが存在している場合 -> 最新レコードのidと同じ値を返す """ self.assertEqual(DefaultValueExtractor.create_default_team_id(), '') Teams(year=1985, period=1).save() self.assertEqual(DefaultValueExtractor.create_default_team_id(), 1) Teams(year=1985, period=2).save() self.assertEqual(DefaultValueExtractor.create_default_team_id(), 2)
def test_create_default_prefecture(self): """ Teamsにレコードが存在しない場合 -> 0(初期値) Teamsにレコードが存在している場合 -> 最新レコードのprefectureと同じ値を返す """ self.assertEqual(DefaultValueExtractor.create_default_prefecture(), 0) Teams(prefecture=17).save() self.assertEqual(DefaultValueExtractor.create_default_prefecture(), 17) Teams(prefecture=1).save() self.assertEqual(DefaultValueExtractor.create_default_prefecture(), 1)
def test_create_default_period(self): """ Teamsにレコードが存在しない場合 -> 1(夏:初期値) Teamsにレコードが存在して、最新レコードが period == 1(夏) -> 2(秋)を返す period == 2(秋) -> 1(夏)を返す """ self.assertEqual(DefaultValueExtractor.create_default_period(), 1) Teams(year=1985, period=1).save() self.assertEqual(DefaultValueExtractor.create_default_period(), 2) Teams(year=1985, period=2).save() self.assertEqual(DefaultValueExtractor.create_default_period(), 1)
def test_create_default_year_for_players(self): """ Teamsにレコードが存在しない場合 -> 1939(初期値) Teamsにレコードが存在している場合 -> 最新レコードのyearと同じ値を返す """ self.assertEqual( DefaultValueExtractor.create_default_year_for_players(), 1939) Teams(year=1985).save() self.assertEqual( DefaultValueExtractor.create_default_year_for_players(), 1985) Teams(year=2040).save() self.assertEqual( DefaultValueExtractor.create_default_year_for_players(), 2040)
def test_create_default_team_rank(self): """ Gamesにレコードが存在しない場合 -> 0(初期値) Gamesにレコードが存在している場合 -> 最新レコードのrankと同じ値を返す """ self.assertEqual(DefaultValueExtractor.create_default_team_rank(), 0) Teams(year=1985, period=1).save() t1 = Teams.objects.latest('pk') Games(team_id=t1, rank=1).save() self.assertEqual(DefaultValueExtractor.create_default_team_rank(), 1) Teams(year=1985, period=2).save() t2 = Teams.objects.latest('pk') Games(team_id=t2, rank=5).save() self.assertEqual(DefaultValueExtractor.create_default_team_rank(), 5)
def test_create_default_year_for_teams(self): """ Teamsにレコードが存在しない場合 -> 1941(初期値) Teamsにレコードが存在して、最新レコードが period == 1(夏) -> 同じyearを返す period == 2(秋) -> 次のyearを返す """ self.assertEqual(DefaultValueExtractor.create_default_year_for_teams(), 1941) Teams(year=1985, period=1).save() self.assertEqual(DefaultValueExtractor.create_default_year_for_teams(), 1985) Teams(year=1985, period=2).save() self.assertEqual(DefaultValueExtractor.create_default_year_for_teams(), 1986)
def test_is_sable_auto_update(self): """is_disable_auto_update=Falseの場合、各種自動更新を行う""" period = ChoicesFormatter.period_choices_to_dict() ModelSettings(is_disable_auto_update=False).save() Teams(year=1985, period=period['夏']).save() self.assertEqual(TeamsTotalResultsTests.objects.count(), 1) Players(admission_year=1985, name="桑田", position=1).save() self.assertEqual(FielderTotalResults.objects.count(), 1) self.assertEqual(PitcherTotalResults.objects.count(), 1)
def test_unique_key_check(self): """(game_id, player_id)""" period = ChoicesFormatter.period_choices_to_dict() competition_choices = ChoicesFormatter.competition_choices_to_dict() round_choices = ChoicesFormatter.round_choices_to_dict() # データセット Teams(year=1985, period=period['夏']).save() t1 = Teams.objects.latest('pk') Players(admission_year=1985, name="桑田", position=1).save() Players(admission_year=1985, name="清原", position=1).save() Games(team_id=t1, competition_type=competition_choices['県大会'], competition_round=round_choices['1回戦'], score=1, run=0).save() g1 = Games.objects.latest('pk') p1 = Players.objects.get(name="桑田") p2 = Players.objects.get(name="清原") PitcherResults(game_id=g1, player_id=p1).save() PitcherResults(game_id=g1, player_id=p2).save() self.assertEqual(PitcherResults.objects.count(), 2) with self.assertRaises(Exception): PitcherResults(game_id=g1, player_id=p1).save()
def test_create_default_competition_type(self): """ 現在のチームに紐づくGamesのレコードが存在しない場合 -> 2(県大会) 現在のそのチームに紐づくGamesのレコードが存在する場合 最新が練習試合 -> 2(県大会) 練習試合以外 -> 基本は同じ値を設定する 例外: 夏 and 県大会 and 決勝 and 勝 であれば次は甲子園 秋 and 県大会 and 2回戦 and 勝 であれば次は地区大会 秋 and 地区大会 and 2回戦 であれば次はセンバツ 妥協: 1回戦、3回戦がない場合は考慮しない """ period = ChoicesFormatter.period_choices_to_dict() competition_choices = ChoicesFormatter.competition_choices_to_dict() round_choices = ChoicesFormatter.round_choices_to_dict() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) # 夏のチーム Teams(year=1985, period=period['夏']).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) t1 = Teams.objects.latest('pk') Games(team_id=t1, competition_type=competition_choices['練習試合'], competition_round=round_choices['練習試合']).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) Games(team_id=t1, competition_type=competition_choices['県大会'], competition_round=round_choices['2回戦'], score=1, run=0).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) Games(team_id=t1, competition_type=competition_choices['県大会'], competition_round=round_choices['2回戦'], score=0, run=1).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) Games(team_id=t1, competition_type=competition_choices['県大会'], competition_round=round_choices['決勝'], score=1, run=0).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['甲子園']) Games(team_id=t1, competition_type=competition_choices['県大会'], competition_round=round_choices['決勝'], score=0, run=1).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) # 秋のチーム Teams(year=1985, period=period['秋']).save() t2 = Teams.objects.latest('pk') self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) Games(team_id=t2, competition_type=competition_choices['県大会'], competition_round=round_choices['2回戦'], score=0, run=1).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['県大会']) Games(team_id=t2, competition_type=competition_choices['県大会'], competition_round=round_choices['2回戦'], score=1, run=0).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['地区大会']) Games(team_id=t2, competition_type=competition_choices['地区大会'], competition_round=round_choices['2回戦'], score=0, run=1).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['地区大会']) Games(team_id=t2, competition_type=competition_choices['地区大会'], competition_round=round_choices['2回戦'], score=1, run=0).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['センバツ']) Games(team_id=t2, competition_type=competition_choices['センバツ'], competition_round=round_choices['2回戦'], score=1, run=0).save() self.assertEqual( DefaultValueExtractor.create_default_competition_type(), competition_choices['センバツ'])