def test_get_current_user_matches_archive(chpp): ma1 = chpp.matches_archive() assert isinstance(ma1, HTMatchesArchive) assert isinstance(ma1.url, str) assert re.match(MATCH_ARCHIVE_PATTERN, ma1.url) m = ma1[0] assert isinstance(m, HTMatchesArchiveItem) assert isinstance(m.home_team, HTTeam) assert isinstance(m.url, str) assert re.match(MATCH_PATTERN, m.url) ma2 = chpp.matches_archive( ht_id=1165592, first_match_date=HTDatetime.from_calendar(2020, 1, 1), last_match_date=HTDatetime.from_calendar(2020, 3, 31), ) assert ma2[0].ht_id == 652913955 assert ma2[0].home_team_name == "Les Poitevins de La Chapelle" assert ma2[0].away_team_name == "FC Traversonne" assert ma2[0].datetime == HTDatetime.from_calendar(2020, 1, 1, 15, 10, 0) assert ma2[0].type == 5 assert ma2[0].context_id == 0 assert ma2[0].rule_id == 0 assert ma2[0].cup_level == 0 assert ma2[0].cup_level_index == 0 assert ma2[0].home_goals == 2 assert ma2[0].away_goals == 0 assert ma2[0].url == "https://www.hattrick.org/goto.ashx" \ "?path=/Club/Matches/Match.aspx?matchID=652913955" for m in ma2: assert (HTDatetime.from_calendar(2020, 1, 1) <= m.datetime <= HTDatetime.from_calendar(2020, 3, 31))
def test_use_ht_datetime(): ht_d = HTDatetime(datetime=dt.datetime(year=2020, month=9, day=7)) assert (ht_d.season, ht_d.week, ht_d.weekday) == (75, 15, 1) assert ht_d.league == "" ht_d.league = "Brazil" assert ht_d.season == 63 assert ht_d.league == "Brazil" ht_d = ht_d + dt.timedelta(days=900) assert (ht_d.season, ht_d.week, ht_d.weekday) == (71, 15, 5) cet = pytz.timezone("CET") date = cet.localize(dt.datetime(year=2023, month=2, day=24)) assert ht_d.datetime == date assert ht_d.league == "Brazil" ht_d.timezone = "America/Belize" assert ht_d == HTDatetime.from_calendar(2023, 2, 23, 17, timezone="America/Belize") assert (ht_d.season, ht_d.week, ht_d.weekday) == (71, 15, 4) ht_d = HTDatetime.from_calendar(2020, 9, 21, 1, 30) assert (ht_d.season, ht_d.week, ht_d.weekday) == (76, 1, 1) ht_d.timezone = "America/Bahia" assert (ht_d.season, ht_d.week, ht_d.weekday) == (75, 16, 7)
def test_get_training(mocked_chpp): training = mocked_chpp.training(team_ht_id=1165592) assert isinstance(training, HTTraining) assert training.team_ht_id == 1165592 assert training.team_name == "Les Poitevins de La Chapelle" assert training.training_level == 98 assert training.new_training_level is None assert training.training_type == 3 assert training.stamina_training_part == 25 assert training.last_training_training_type == 5 assert training.last_training_training_level == 95 assert training.last_training_stamina_training_part == 16 assert training.trainer_ht_id == 421746800 assert training.trainer_name == "Quentin Lavigne" assert training.trainer_arrival_date == HTDatetime.from_calendar( 2018, 3, 23, 19, 44, 0) assert training.morale == 4 assert training.self_confidence == 5 assert training.experience_442 == 7 assert training.experience_433 == 4 assert training.experience_451 == 3 assert training.experience_352 == 8 assert training.experience_532 == 4 assert training.experience_343 == 3 assert training.experience_541 == 6 assert training.experience_523 == 9 assert training.experience_550 == 5 assert training.experience_253 == 10
def test_get_other_user_matches_archives(chpp): ma1 = chpp.matches_archive( ht_id=1755906, first_match_date=HTDatetime.from_calendar(2018, 4, 10), last_match_date=HTDatetime.from_calendar(2018, 4, 30), ) assert re.match(MATCH_ARCHIVE_PATTERN, ma1.url) for m in ma1: assert (HTDatetime.from_calendar(2018, 4, 10) <= m.datetime <= HTDatetime.from_calendar(2018, 6, 30)) assert 1755906 in (m.home_team_id, m.away_team_id) assert re.match(MATCH_PATTERN, m.url) ma2 = chpp.matches_archive(ht_id=1755906, season=60, ) assert re.match(MATCH_ARCHIVE_PATTERN, ma2.url) for m in ma2: assert (HTDatetime.from_calendar(2015, 10, 26) <= m.datetime <= HTDatetime.from_calendar(2016, 2, 14)) assert 1755906 in (m.home_team_id, m.away_team_id) assert re.match(MATCH_PATTERN, m.url)
def test_get_team_transfers(mocked_chpp): transfers_team = mocked_chpp.transfers_team(ht_id=940, page_index=1) assert isinstance(transfers_team, HTTransfersTeam) assert transfers_team.ht_id == 940 assert transfers_team.name == "FC Vanilla" assert transfers_team.activated_date == ( HTDatetime.from_calendar(2003, 2, 1, 3, 15, 0)) assert transfers_team.total_sum_of_buys == 572_579_730 assert transfers_team.total_sum_of_sales == 569_274_290 assert transfers_team.number_of_buys == 65 assert transfers_team.number_of_sales == 144 assert transfers_team.page_index == 1 assert transfers_team.pages == 9 assert transfers_team.start_date == HTDatetime.from_calendar(2008, 10, 11, 16, 5, 0) assert transfers_team.end_date == HTDatetime.from_calendar(2009, 10, 31, 9, 44, 0) assert isinstance(transfers_team.transfer_list, list) assert len(transfers_team.transfer_list) == 25 transfer_item = transfers_team.transfer_list[10] assert isinstance(transfer_item, HTTransfersTeamItem) assert transfer_item.ht_id == 177997172 assert transfer_item.deadline == HTDatetime.from_calendar(2009, 6, 26, 21, 21, 0) assert transfer_item.transfer_type == "S" assert transfer_item.price == 10_000_000 assert transfer_item.player_id == 0 assert transfer_item.player_name == "André da Costa" assert transfer_item.tsi == 10_260 assert transfer_item.buyer_team_id == 494228 assert transfer_item.buyer_team_name == "LOS CARA DEPERCHAS" assert transfer_item.seller_team_id == 940 assert transfer_item.seller_team_name == "FC Vanilla"
def test_get_match(chpp): m = chpp.match(ht_id=547513790, events=True) assert isinstance(m, HTMatch) assert m.ht_id == 547513790 assert m.url == "https://www.hattrick.org/goto.ashx?" \ "path=/Club/Matches/Match.aspx?matchID=547513790" assert m.datetime == HTDatetime.from_calendar(2015, 12, 19, 21, 0) assert m.home_team_name == "Olympique Mig" assert m.away_team_name == "Camden County Jerks" assert m.added_minutes == 0 assert m.arena_id == 1162154 assert len(m.events) >= 0 assert m.events[14]["minute"] == 72 assert m.events[14]["match_part"] == 2 assert m.events[14]["id"] == 285 assert m.events[14]["variation"] == 3 assert m.events[14]["subject_team_id"] == 292366 assert m.events[14]["subject_player_id"] == 373737451 assert m.events[14]["object_player_id"] == 314946894
def test_get_own_youth_player(mocked_chpp): yp = mocked_chpp.youth_player(ht_id=259808489) assert yp.ht_id == 259808489 assert yp.first_name == "Alain" assert yp.last_name == "Rombaut" assert yp.age == HTAge(age=20, age_days=15) assert yp.arrival_date == HTDatetime.from_calendar(year=2020, month=4, day=11, hour=9, minute=34, second=0) assert yp.can_be_promoted_in == -351 assert yp.number == 100 assert yp.cards == 0 assert yp.injury_level == -1 assert yp.specialty == 0 assert yp.career_goals == 5 assert yp.career_hattricks == 0 assert yp.league_goals == 0 assert yp.friendly_goals == 0 assert yp.team_id == 2816963 assert yp.team_name == "Les Petits Chapelains" assert yp.team_league_id == 446815 assert yp.senior_team_id == 1165592 assert yp.senior_team_name == "Les Poitevins de La Chapelle" assert isinstance(yp.skills["keeper"], HTSkillYouth) assert yp.skills["keeper"].level is None assert yp.skills["keeper"].maximum_reached is False assert yp.skills["keeper"].maximum == 2 assert isinstance(yp.skills["playmaker"], HTSkillYouth) assert yp.skills["playmaker"].level == 4 assert yp.skills["playmaker"].maximum_reached is False assert yp.skills["playmaker"].maximum == 4 assert isinstance(yp.skills["defender"], HTSkillYouth) assert yp.skills["defender"].level == 4 assert yp.skills["defender"].maximum_reached is True assert yp.skills["defender"].maximum == 4
def test_get_specific_team_currently_playing(mocked_chpp): team = mocked_chpp.team(ht_id=1959999) assert isinstance(team, HTTeam) assert team.ht_id == 1959999 assert team.user_ht_id == 13011389 assert team.user_language_id == 14 assert team.user_language_name == "Russian" assert team.supporter_tier == "none" assert team.user_loginname == "braslet" assert team.user_name == "HIDDEN" assert team.user_icq is None assert team.user_signup_date == HTDatetime.from_calendar(2014, 9, 9, 6, 54, 1) assert team.user_activation_date == HTDatetime.from_calendar(2014, 9, 9, 12, 11, 0) assert team.user_last_login_date == HTDatetime.from_calendar(2021, 1, 17, 4, 51, 59) assert team.user_has_manager_license is True assert team.name == "Polonka" assert team.short_name == 'Polonka' assert team.is_primary_club is True assert team.founded_date == HTDatetime.from_calendar(2014, 9, 9, 12, 11, 0) assert team.arena_ht_id == 1956561 assert team.arena_name == "Red and White" assert team.league_ht_id == 91 assert team.league_name == "Bélarus" assert team.country_ht_id == 87 assert team.country_name == "Bélarus" assert team.region_ht_id == 1723 assert team.region_name == "Grodno" assert team.trainer_ht_id == 444145675 assert team.homepage is None assert team.still_in_cup is None assert team.cup_ht_id is None assert team.cup_name is None assert team.cup_league_level is None assert team.cup_level is None assert team.cup_level_index is None assert team.cup_match_round is None assert team.cup_match_rounds_left is None assert team.power_rating_global_ranking == 768 assert team.power_rating_league_ranking == 5 assert team.power_rating_region_ranking == 1 assert team.power_rating == 1139 assert team.friendly_team_ht_id is None assert team.league_level_unit_id == 60146 assert team.league_level_unit_name == "Vyshejshaja Liga" assert team.league_level == 1 assert team.number_of_victories is None assert team.number_of_undefeated is None assert team.fan_club_ht_id == 0 assert team.fan_club_name is None assert team.fan_club_size == 3592 assert team.logo_url == "//res.hattrick.org/teamlogo/20/196/" \ "1960/1959999/1959999.png" assert team.guestbook_items is None assert team.press_announcement_subject is None assert team.press_announcement_body is None assert team.press_announcement_send_date is None assert team.background_color is None assert team.color is None assert team.dress_uri == "//res.hattrick.org/kits/1/1/1/1/" \ "matchKitSmall.png" assert team.dress_alternate_uri == "//res.hattrick.org/kits/1/1/1/2/" \ "matchKitSmall.png" assert team.is_bot is False assert team.rank is None assert team.youth_team_ht_id == 2544501 assert team.youth_team_name == "Polonka Stars" assert team.number_of_visits == 5 assert team.url == "https://www.hattrick.org/goto.ashx" \ "?path=/Club/?TeamID=1959999" user = team.user assert isinstance(user, HTUser) assert user.ht_id == 13011389 assert user.username == 'braslet' assert user.supporter_tier == 'none' assert user.url == "https://www.hattrick.org/goto.ashx" \ "?path=/Club/Manager/?userId=13011389" arena = team.arena assert isinstance(arena, HTArena) assert arena.name == "Red and White" assert re.match(ARENA_PATTERN, arena.url) youth_team = team.youth_team assert isinstance(youth_team, HTYouthTeam) assert youth_team.url == 'https://www.hattrick.org/goto.ashx?path=' \ '/Club/Youth/?YouthTeamID=2544501'
def test_get_specific_team(mocked_chpp): team = mocked_chpp.team(ht_id=591993) assert isinstance(team, HTTeam) assert team.ht_id == 591993 assert team.user_ht_id == 6336642 assert team.user_language_id == 5 assert team.user_language_name == "Français" assert team.supporter_tier == "platinum" assert team.user_loginname == "thekiki76" assert team.user_name == "HIDDEN" assert team.user_icq is None assert team.user_signup_date == HTDatetime.from_calendar(2007, 5, 4, 11, 49, 34) assert team.user_activation_date == HTDatetime.from_calendar(2007, 5, 8, 2, 58, 0) assert team.user_last_login_date == HTDatetime.from_calendar(2021, 1, 14, 20, 53, 41) assert team.user_has_manager_license is True assert team.name == "thekiki's" assert team.short_name == 'thekikis' assert team.is_primary_club is True assert team.founded_date == HTDatetime.from_calendar(2007, 5, 8, 2, 58, 0) assert team.arena_ht_id == 591993 assert team.arena_name == "thekiki's evil" assert team.league_ht_id == 5 assert team.league_name == "France" assert team.country_ht_id == 5 assert team.country_name == "France" assert team.region_ht_id == 139 assert team.region_name == "Haute-Normandie" assert team.trainer_ht_id == 336956746 assert team.homepage == "coupe-des-regions.forumpro.fr/index.htm" assert team.still_in_cup is True assert team.cup_ht_id == 6 assert team.cup_name == "Coupe de France" assert team.cup_league_level == 0 assert team.cup_level == 1 assert team.cup_level_index == 1 assert team.cup_match_round == 2 assert team.cup_match_rounds_left == 13 assert team.power_rating_global_ranking == 13632 assert team.power_rating_league_ranking == 599 assert team.power_rating_region_ranking == 19 assert team.power_rating == 990 assert team.friendly_team_ht_id == 0 assert team.league_level_unit_id == 21672 assert team.league_level_unit_name == "V.96" assert team.league_level == 5 assert team.number_of_victories == 5 assert team.number_of_undefeated == 5 assert team.fan_club_ht_id == 339929 assert team.fan_club_name == "the bad kiki's fanatic" assert team.fan_club_size == 2419 assert team.logo_url == "//res.hattrick.org/teamlogo/6/60/592/591993/" \ "591993.jpg" assert team.guestbook_items == 239 assert team.press_announcement_subject == "retour vers le fu..heu " \ "vers la V.96" assert team.press_announcement_body == ( "Aprés une relégation de DIV IV Thekiki's reviennent voir les copains " "de la V.96, pour mettre le bazar ;)\n" "bonne saison les gars ca va bagarrer !!!") assert team.press_announcement_send_date == ( HTDatetime.from_calendar(2020, 9, 17, 11, 55, 0)) assert team.background_color == "000000" assert team.color == "ffffff" assert team.dress_uri == "//res.hattrick.org/kits/27/261/2606/2605185/" \ "matchKitSmall.png" assert team.dress_alternate_uri == "//res.hattrick.org/kits/27/261/2606/" \ "2605184/matchKitSmall.png" assert team.is_bot is False assert team.rank == 1182 assert team.youth_team_ht_id == 546603 assert team.youth_team_name == 'thebabykikis' assert team.number_of_visits == 2 assert team.url == "https://www.hattrick.org/goto.ashx" \ "?path=/Club/?TeamID=591993" user = team.user assert isinstance(user, HTUser) assert user.ht_id == 6336642 assert user.username == 'thekiki76' assert user.supporter_tier == 'platinum' assert user.url == "https://www.hattrick.org/goto.ashx" \ "?path=/Club/Manager/?userId=6336642" arena = team.arena assert isinstance(arena, HTArena) assert arena.name == "thekiki's evil" assert re.match(ARENA_PATTERN, arena.url) youth_team = team.youth_team assert isinstance(youth_team, HTYouthTeam) assert youth_team.url == 'https://www.hattrick.org/goto.ashx?path=' \ '/Club/Youth/?YouthTeamID=546603'