def test_build_na_challenger_series_with_messy_formatting(self, reddit_mock): # Youtube instead of YouTube, changed markers submission_text = """ ####Week 2, Day 2 - Wednesday, July 2^nd | | Team 1 | vs | Team 2 | Youtube | Youtube | :--: | :--: | :--: | :--: | :--: | :--: | C1 [](http://www.table_title.com "W2D2, July 2nd") | **VTX**| vs | **C9T** | [Picks & Bans](https://www.youtube.com/watch?v=90xt1QCHLOU) | [Game Start](https://www.youtube.com/watch?v=90xt1QCHLOU&t=7m27s) """ mock_submission_text(reddit_mock, submission_text) from addon import plugin from resources.lib import reddit matches = reddit.build_matches(plugin, 'League of Legends', '3b77pn') expected = [{'label': 'VTX vs C9T - Week 2, Day 2 - Wednesday, July 2', 'path': 'plugin://plugin.video.eventvods/play/youtube/90xt1QCHLOU', 'is_playable': True}] assert_equals(expected, matches)
def test_builds_matches(self, reddit_mock): submission_text = """ --- ##Week 4, Day 1 - Saturday, June 20^th * **Full Stream:** [Twitch](http://www.twitch.tv/riotgames/v/6392126) |#|Team 1|vs.|Team 2|Twitch|Twitch|YouTube|YouTube|Interview|Highlights|Discussion :--:|--:|:--:|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--: G1 [](http://www.table_title.com "W4D1, June 20th")| **DIG** [](#dig) | vs | [](#tip) **TIP** | [Picks & Bans](http://www.twitch.tv/riotgames/v/6392126?t=1h13m22s) | [Game Start](http://www.twitch.tv/riotgames/v/6392126?t=1h20m02s) | [Picks & Bans](https://www.youtube.com/watch?v=xTgvsYjxEvk&t=14m19s) | [Game Start](https://www.youtube.com/watch?v=xTgvsYjxEvk&t=20m56s) | [Interview](https://www.youtube.com/watch?v=xTgvsYjxEvk&t=1h03m03s) | [Highlights](https://www.youtube.com/watch?v=_74cY-fGdT0) | [Spoilers!](http://redd.it/3ajfxi) ##Week 4, Day 2 - Sunday, June 21^th |#|Team 1|vs.|Team 2|Twitch|Twitch|YouTube|YouTube|Interview|Highlights|Discussion :--:|--:|:--:|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--: G2 | **TDK** [](#tdk) | vs | [](#clg) **CLG** | [Picks & Bans](http://www.twitch.tv/riotgames/v/6392126?t=2h18m10s) | [Game Start](http://www.twitch.tv/riotgames/v/6392126?t=2h23m21s) | [Picks & Bans](https://www.youtube.com/watch?v=jKtUERIXfBA&t=3m17s) | [Game Start](https://www.youtube.com/watch?v=jKtUERIXfBA&t=8m28s) | [Interview](https://www.youtube.com/watch?v=jKtUERIXfBA&t=48m59s) | [Highlights](https://www.youtube.com/watch?v=QxzsKb_aZWo) | [Spoilers!](http://redd.it/3ajmk2) * **Patch:** [**5.11**](http://euw.leagueoflegends.com/en/news/game-updates/patch/patch-511-notes) * **Live Discussion Thread:** [Spoilers!](http://redd.it/3aivui) * **Recommended Games:** [Strawpoll](http://strawpoll.me/4691377) *Covered by /u/Punistick* """ mock_submission_text(reddit_mock, submission_text) from addon import plugin from resources.lib import reddit matches = reddit.build_matches(plugin, 'Hyped eSport', 'whatever') expected = [{'label': 'DIG vs TIP - Week 4, Day 1 - Saturday, June 20', 'path': 'plugin://plugin.video.eventvods/play/youtube/xTgvsYjxEvk', 'is_playable': True}, {'label': 'TDK vs CLG - Week 4, Day 2 - Sunday, June 21', 'path': 'plugin://plugin.video.eventvods/play/youtube/jKtUERIXfBA', 'is_playable': True}] assert_equals(expected, matches)
def test_build_best_of_x_matches(self, reddit_mock): submission_text = """ ####9th Seed Series * **Full Stream:** [Twitch](http://www.twitch.tv/riotgames/b/653292092) / [Youtube](https://www.youtube.com/watch?v=5hmQpuDj_so) |#|Team 1| vs |Team 2|Twitch|Twitch|YouTube|YouTube|Analysis|Highlights|Discussion :--:|--:|:--:|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--: A1 [](http://www.table_title.com "9th Seed - April 25th") | **GIA** [](#gia) | vs. | [](#rg) **RG**| [Picks & Bans](http://www.twitch.tv/riotgames/b/653292092?t=1h15m58s) | [Game Start](http://www.twitch.tv/riotgames/b/653292092?t=1h22m16s) | [Picks & Bans](https://www.youtube.com/watch?v=3PE-OyKo31g&t=15m27s) | [Game Start](https://www.youtube.com/watch?v=3PE-OyKo31g&t=21m48s) | [Analysis](https://www.youtube.com/watch?v=3PE-OyKo31g&t=58m42s) | [Highlights](https://www.youtube.com/watch?v=l1jsz2mfTbI) | - A2 | **RG** [](#rg) | vs. | [](#gia) **GIA** | [Picks & Bans](http://www.twitch.tv/riotgames/b/653292092?t=2h09m55s) | [Game Start](http://www.twitch.tv/riotgames/b/653292092?t=2h15m47s) | [Picks & Bans](https://www.youtube.com/watch?v=SIDP8cAC5Yw&t=3m44s) | [Game Start](https://www.youtube.com/watch?v=SIDP8cAC5Yw&t=9m34s) | [Analysis](https://www.youtube.com/watch?v=SIDP8cAC5Yw&t=44m44s) | [Highlights](https://www.youtube.com/watch?v=xZRQYVObxfQ) | - """ mock_submission_text(reddit_mock, submission_text) from addon import plugin from resources.lib import reddit matches = reddit.build_matches(plugin, 'League of Legends', '33t319') expected = [{'path': u'plugin://plugin.video.eventvods/play/youtube/3PE-OyKo31g', 'is_playable': True, 'label': u'Game 1 - GIA vs RG - 9th Seed Series'}, {'path': u'plugin://plugin.video.eventvods/play/youtube/SIDP8cAC5Yw', 'is_playable': True, 'label': u'Game 2 - RG vs GIA - 9th Seed Series'}] assert_equals(expected, matches)
def show_reddit_matches(game, submission): matches = reddit.build_matches(plugin, game, submission) return matches
def test_builds_gfinity_masters_with_spoilers(self, reddit_mock): submission_text = """ * **Gfinity Summer Masters I** * **Date:** June 26th - 28th * **Stream:** [Twitch](http://www.twitch.tv/gfinitytv) * **Teams:** Cloud 9, EnVyUs, Virtus.Pro, Ninjas in Pyjamas, Team Dignitas, Titan, SK Gaming, mousesports * **Format:** All games except finals are BO3; double elimination --- ##Day 1, Friday - June 26^th |#|Map|Team 1|vs|Team 2|Twitch|YouTube|HLTV :--:|:--:|--:|:--:|:--|:--:|:--:|:--:| A1 | Mirage | **Titan** [](#titan) | vs | [](#dig) **Dignitas** | [RUS](http://www.twitch.tv/starladder10/v/6618163?t=26m1s) | [RUS](https://www.youtube.com/watch?v=zPhbYJ5nQ68) | [HLTV](http://www.hltv.org/match/2296735-titan-dignitas-gfinity-2015-summer-masters-1) A2 | Overpass | **Titan** [](#titan) | vs | [](#dig) **Dignitas** | [RUS](http://www.twitch.tv/starladder10/v/6618163?t=1h13m13s) | [RUS](https://www.youtube.com/watch?v=Q1ZiUgug_7E) | [HLTV](http://www.hltv.org/match/2296735-titan-dignitas-gfinity-2015-summer-masters-1) A3 | Cache | **Titan** [](#titan) | vs | [](#dig) **Dignitas** | [RUS](http://cs.eventvods.com) | [RUS](http://cs.eventvods.com) | [HLTV](http://www.hltv.org/match/2296735-titan-dignitas-gfinity-2015-summer-masters-1) | ##Day 2, Saturday - June 27^th |#|Map|Team 1|vs|Team 2|Twitch|YouTube|HLTV :--:|:--:|--:|:--:|:--|:--:|:--:|:--: E1|Cache|[Winner of A](/s "Dignitas")|vs|[Winner of B](/s "NiP")|[**ENG**](http://www.twitch.tv/gfinitytv/v/6648155?t=51m42s)|[**ENG**](https://www.youtube.com/watch?v=IftovJWBBQs)|[HLTV](http://www.hltv.org/match/2296742-dignitas-nip-gfinity-2015-summer-masters-1) E2|Mirage|[Winner of A](/s "Dignitas")|vs|[Winner of B](/s "NiP")|[**ENG**](http://www.twitch.tv/gfinitytv/v/6648155?t=1h27m28s)|[**ENG**](https://www.youtube.com/watch?v=Y_B2bTzbiBc)|[HLTV](http://www.hltv.org/match/2296742-dignitas-nip-gfinity-2015-summer-masters-1) | *Covered by: /u/iPlain* ####Day 3, Sunday - June 28^th ##Semi Finals and Finals |#|Map|Team 1|vs|Team 2|Twitch|YouTube|HLTV :--:|:--:|--:|:--:|:--|:--:|:--:|:--: K1|Train|[Winner of E](/s "NiP")|vs|[Winner of J](/s "Mouz")|[**ENG**](http://www.twitch.tv/gfinitytv/v/6686745?t=53m59s)|[**ENG**](https://www.youtube.com/watch?v=nba_w1oG33k)|[HLTV](http://www.hltv.org/match/2296748-nip-mousesports-gfinity-2015-summer-masters-1) K2|Dust 2|[Winner of E](/s "NiP")|vs|[Winner of J](/s "Mouz")|[**ENG**](http://www.twitch.tv/gfinitytv/v/6686745?t=1h48m43s)|[**ENG**](https://www.youtube.com/watch?v=lFTLVL2QdwY)|[HLTV](http://www.hltv.org/match/2296748-nip-mousesports-gfinity-2015-summer-masters-1) K3|Mirage|[Winner of E](/s "NiP")|vs|[Winner of J](/s "Mouz")|[**ENG**](http://cs.eventvods.com)|[**ENG**](http://cs.eventvods.com)|[HLTV](http://www.hltv.org/match/2296748-nip-mousesports-gfinity-2015-summer-masters-1) *Covered by: /u/iPlain* """ mock_submission_text(reddit_mock, submission_text) from addon import plugin from resources.lib import reddit matches = reddit.build_matches(plugin, 'Hyped eSport', 'whatever') expected = [{'label': 'Game 1 - Titan vs Dignitas - Day 1, Friday - June 26', 'path': 'plugin://plugin.video.eventvods/play/youtube/zPhbYJ5nQ68', 'is_playable': True}, {'label': 'Game 2 - Titan vs Dignitas - Day 1, Friday - June 26', 'path': 'plugin://plugin.video.eventvods/play/youtube/Q1ZiUgug_7E', 'is_playable': True}, {'label': 'Game 1 - Dignitas vs NiP - Day 2, Saturday - June 27', 'path': u'plugin://plugin.video.eventvods/play/youtube/IftovJWBBQs', 'is_playable': True}, {'label': 'Game 2 - Dignitas vs NiP - Day 2, Saturday - June 27', 'path': u'plugin://plugin.video.eventvods/play/youtube/Y_B2bTzbiBc', 'is_playable': True}, {'label': 'Game 1 - NiP vs Mouz - Semi Finals and Finals', 'path': u'plugin://plugin.video.eventvods/play/youtube/nba_w1oG33k', 'is_playable': True}, {'label': 'Game 2 - NiP vs Mouz - Semi Finals and Finals', 'path': u'plugin://plugin.video.eventvods/play/youtube/lFTLVL2QdwY', 'is_playable': True}, ] assert_equals(expected, matches)