예제 #1
0
 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
     })
예제 #2
0
 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()
예제 #3
0
 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()
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
 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()
예제 #12
0
    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['センバツ'])