Coverage for test\test_juicy.py: 100%

39 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-09-27 18:50 +0000

1import re 

2import pytest 

3 

4 

5substitutions = { 

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

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

8 'PLYR': r'(?P<PNAME>.+?)', 

9 'CUR': r"(\$|€|)", 

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

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

12 } 

13 

14re_PlayerInfo = re.compile(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]+)\))?""" % substitutions, 

19 re.MULTILINE|re.VERBOSE) 

20 

21re_PlayerInfo2 = re.compile(r""" 

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

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

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

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

26 re.MULTILINE|re.VERBOSE) 

27 

28 

29def test_re_PlayerInfo2(): 

30 text = 'Seat 1: joker7 (1 200 in chips) ' 

31 match = re_PlayerInfo.search(text) 

32 assert match is not None 

33 assert match.group('SEAT') == '1' 

34 assert match.group('PNAME') == 'joker7' 

35 assert match.group('CASH') == '1 200' 

36 

37def test_re_PlayerInfo3(): 

38 text = 'Seat 1: joker7 (1 200 in chips) ' 

39 match = re_PlayerInfo2.search(text) 

40 assert match is not None 

41 assert match.group('SEAT') == '1' 

42 assert match.group('PNAME') == 'joker7' 

43 assert match.group('CASH') == '1 200' 

44 

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

46hand_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" 

47 

48re_GameInfo = re.compile(r""" 

49 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>.*$) 

50 """ % substitutions, re.MULTILINE|re.VERBOSE) 

51 

52def test_re_GameInfo3(): 

53 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 match = re_GameInfo.search(text) 

55 assert match is not None 

56 assert match.group('HID') == '710910543B500014' 

57 assert match.group('TABLE') == 'Freeroll to GOLD CHIPS' 

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

59 assert match.group('TABLENO') == '4' 

60 assert match.group('BUYIN') == '$0 + $0' 

61 assert match.group('TMAX') == '9' 

62 assert match.group('BIAMT') == '$0' 

63 assert match.group('BIRAKE') == '$0' 

64 assert match.group('ANTESB') == '0' 

65 assert match.group('SBBB') == '10' 

66 assert match.group('BB') == '20' 

67 assert match.group('LIMIT') == 'NL' 

68 assert match.group('GAME') == 'Hold\'em' 

69 

70