Coverage for test\test_juicy.py: 100%

38 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2024-11-18 00:10 +0000

1import re 

2 

3 

4substitutions = { 

5 "LEGAL_ISO": "USD|EUR|GBP|CAD|FPP", # legal ISO currency codes 

6 "LS": r"\$|€|", # legal currency symbols - Euro(cp1252, utf-8) 

7 "PLYR": r"(?P<PNAME>.+?)", 

8 "CUR": r"(\$|€|)", 

9 "NUM": r".(,|\s)\d\xa0", 

10 "NUM2": r"\b((?:\d{1,3}(?:\s\d{3})*)|(?:\d+))\b", # Regex pattern for matching numbers with spaces 

11} 

12 

13re_PlayerInfo = re.compile( 

14 r""" 

15 ^Seat\s(?P<SEAT>[0-9]+):\s 

16 (?P<PNAME>.+?)\s 

17 \((%(LS)s)?(?P<CASH>[%(NUM)s]+)\sin\schips\) 

18 (\s\s\(EUR\s(%(CUR)s)?(?P<EUROVALUE>[%(NUM)s]+)\))?""" 

19 % substitutions, 

20 re.MULTILINE | re.VERBOSE, 

21) 

22 

23re_PlayerInfo2 = re.compile( 

24 r""" 

25 ^Seat\s(?P<SEAT>[0-9]+):\s 

26 (?P<PNAME>.+?)\s 

27 \((%(LS)s)?(?P<CASH>[%(NUM2)s]+)\sin\schips\) 

28 (\s\s\(EUR\s(%(CUR)s)?(?P<EUROVALUE>[%(NUM)s]+)\))?""" 

29 % substitutions, 

30 re.MULTILINE | re.VERBOSE, 

31) 

32 

33 

34def test_re_PlayerInfo2(): 

35 text = "Seat 1: joker7 (1 200 in chips) " 

36 match = re_PlayerInfo.search(text) 

37 assert match is not None 

38 assert match.group("SEAT") == "1" 

39 assert match.group("PNAME") == "joker7" 

40 assert match.group("CASH") == "1 200" 

41 

42 

43def test_re_PlayerInfo3(): 

44 text = "Seat 1: joker7 (1 200 in chips) " 

45 match = re_PlayerInfo2.search(text) 

46 assert match is not None 

47 assert match.group("SEAT") == "1" 

48 assert match.group("PNAME") == "joker7" 

49 assert match.group("CASH") == "1 200" 

50 

51 

52table_text = "Tournament: 17106061 Buy-In Freeroll : Table 10 - No Limit Holdem - 15/30" 

53hand_text = "Hand#710910543B500014 - Freeroll to GOLD CHIPS T17122229 -- FREEROLL -- $0 + $0 -- 9 Max -- Table 4 -- 0/10/20 NL Hold'em -- 2023/09/22 - 17:35:27" 

54 

55re_GameInfo = re.compile( 

56 r""" 

57 Hand\#(?P<HID>[A-Z0-9]+)\s+\-\s+(?P<TABLE>(?P<BUYIN1>(?P<BIAMT1>(%(LS)s)[%(NUM)s]+)\sNLH\s(?P<MAX1>\d+)\smax)?.+?)\s(\((Turbo,\s)?(?P<MAX>\d+)\-+[Mm]ax\)\s)?((?P<TOURNO>T\d+)|\d+)\s(\-\-\s(TICKET|CASH|TICKETCASH|FREEROLL)\s\-\-\s(?P<BUYIN>(?P<BIAMT>\$\d+)\s\+\s(?P<BIRAKE>\$\d+))\s\-\-\s(?P<TMAX>\d+)\sMax\s)?(\-\-\sTable\s(?P<TABLENO>\d+)\s)?\-\-\s(?P<CURRENCY>%(LS)s|)?(?P<ANTESB>(\-)?\d)/(%(LS)s)?(?P<SBBB>\d+)(/(%(LS)s)?(?P<BB>\d+))?\s(?P<LIMIT>NL|FL||PL)\s(?P<GAME>Hold\'em|Omaha|Omaha\sHi/Lo|OmahaHiLo)\s-\-\s(?P<DATETIME>.*$) 

58 """ 

59 % substitutions, 

60 re.MULTILINE | re.VERBOSE, 

61) 

62 

63 

64def test_re_GameInfo3(): 

65 text = "Hand#710910543B500014 - Freeroll to GOLD CHIPS T17122229 -- FREEROLL -- $0 + $0 -- 9 Max -- Table 4 -- 0/10/20 NL Hold'em -- 2023/09/22 - 17:35:27" 

66 match = re_GameInfo.search(text) 

67 assert match is not None 

68 assert match.group("HID") == "710910543B500014" 

69 assert match.group("TABLE") == "Freeroll to GOLD CHIPS" 

70 assert match.group("DATETIME") == "2023/09/22 - 17:35:27" 

71 assert match.group("TABLENO") == "4" 

72 assert match.group("BUYIN") == "$0 + $0" 

73 assert match.group("TMAX") == "9" 

74 assert match.group("BIAMT") == "$0" 

75 assert match.group("BIRAKE") == "$0" 

76 assert match.group("ANTESB") == "0" 

77 assert match.group("SBBB") == "10" 

78 assert match.group("BB") == "20" 

79 assert match.group("LIMIT") == "NL" 

80 assert match.group("GAME") == "Hold'em"