コード例 #1
0
ファイル: test_naver_tv.py プロジェクト: PatrickStankard/kbo
    def test_default_options_for_full_game_clip_type(self):
        today_kst = datetime.datetime.now(KST_TZINFO).replace(hour=0,
                                                              minute=0,
                                                              second=0,
                                                              microsecond=0)
        two_days_ago_kst = today_kst - datetime.timedelta(days=2)

        with tempfile.TemporaryDirectory() as output_dir_path:
            with tempfile.TemporaryDirectory() as tmp_dir_path:
                with tempfile.NamedTemporaryFile(
                        dir=tmp_dir_path) as full_game_feed_path_file:
                    spider = NaverTvSpider(
                        clip_type=NAVER_TV_CLIP_TYPE_CONDENSED_GAME,
                        output_dir_path=output_dir_path,
                        tmp_dir_path=tmp_dir_path,
                        full_game_feed_path=full_game_feed_path_file.name)

        self.assertEqual(NAVER_TV_CLIP_TYPE_CONDENSED_GAME, spider.clip_type)
        self.assertIsNone(spider.team_name)
        self.assertEqual(today_kst, spider.end_date)
        self.assertEqual(two_days_ago_kst, spider.start_date)
        self.assertIsNone(spider.min_clip_length)
        self.assertEqual(3600, spider.max_clip_length)
        self.assertEqual(1, spider.max_num_pages)
        self.assertEqual(output_dir_path, spider.output_dir_path)
        self.assertEqual(tmp_dir_path, spider.tmp_dir_path)
        self.assertEqual(full_game_feed_path_file.name,
                         spider.full_game_feed_path)
        self.assertFalse(spider.do_dry_run)
コード例 #2
0
    def test_skips_move_on_dry_run(self):
        item = NaverTvClip(
            clip_id=13820293,
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            url='https://tv.naver.com/v/13820293',
            length=15813,
            channel_path='/wyvernsvod',
            home_team_name='SK Wyverns',
            away_team_name='NC Dinos',
            year=2020,
            month=5,
            day=16
        )
        with tempfile.TemporaryDirectory() as output_dir_path:
            with tempfile.TemporaryDirectory() as tmp_dir_path:
                spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    start_date='2020-05-16',
                    end_date='2020-05-16',
                    do_dry_run=True,
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path
                )
                pipeline = ClipMovePipeline()

                with patch('shutil.move') as move_mock:
                    result = pipeline.process_item(item, spider)

        self.assertEqual(item, result)
        move_mock.assert_not_called()
コード例 #3
0
    def test_skips_download_on_dry_run(self):
        item = NaverTvClip(
            clip_id=13820293,
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            url='https://tv.naver.com/v/13820293',
            length=15813,
            channel_path='/wyvernsvod',
            home_team_name='SK Wyverns',
            away_team_name='NC Dinos',
            year=2020,
            month=5,
            day=16
        )
        spider = NaverTvSpider(
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            start_date='2020-05-16',
            end_date='2020-05-16',
            do_dry_run=True
        )
        pipeline = ClipDownloadPipeline()

        with patch('youtube_dl.YoutubeDL') as youtube_dl_mock:
            result = pipeline.process_item(item, spider)

        self.assertEqual(item, result)
        youtube_dl_mock.assert_not_called()
コード例 #4
0
ファイル: test_naver_tv.py プロジェクト: PatrickStankard/kbo
    def test_sets_team_name(self):
        with tempfile.TemporaryDirectory() as output_dir_path:
            with tempfile.TemporaryDirectory() as tmp_dir_path:
                spider = NaverTvSpider(clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                                       team_name='KT Wiz',
                                       output_dir_path=output_dir_path,
                                       tmp_dir_path=tmp_dir_path)

        self.assertEqual('KT Wiz', spider.team_name)
コード例 #5
0
ファイル: test_naver_tv.py プロジェクト: PatrickStankard/kbo
    def test_sets_max_num_pages(self):
        with tempfile.TemporaryDirectory() as output_dir_path:
            with tempfile.TemporaryDirectory() as tmp_dir_path:
                spider = NaverTvSpider(clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                                       max_num_pages=1234,
                                       output_dir_path=output_dir_path,
                                       tmp_dir_path=tmp_dir_path)

        self.assertEqual(1234, spider.max_num_pages)
コード例 #6
0
ファイル: test_naver_tv.py プロジェクト: PatrickStankard/kbo
    def test_sets_start_date(self):
        with tempfile.TemporaryDirectory() as output_dir_path:
            with tempfile.TemporaryDirectory() as tmp_dir_path:
                spider = NaverTvSpider(clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                                       start_date='2020/05/16',
                                       output_dir_path=output_dir_path,
                                       tmp_dir_path=tmp_dir_path)

        self.assertEqual(datetime.datetime(2020, 5, 16, tzinfo=KST_TZINFO),
                         spider.start_date)
コード例 #7
0
ファイル: test_naver_tv.py プロジェクト: PatrickStankard/kbo
    def test_sets_do_dry_run(self):
        with tempfile.TemporaryDirectory() as output_dir_path:
            with tempfile.TemporaryDirectory() as tmp_dir_path:
                first_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run=True,
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)
                second_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run='true',
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)
                third_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run=1,
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)
                fourth_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run='1',
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)
                fifth_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run=0,
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)
                sixth_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run='0',
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)
                seventh_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run=False,
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)
                eighth_spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    do_dry_run='false',
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path)

        self.assertTrue(first_spider.do_dry_run)
        self.assertTrue(second_spider.do_dry_run)
        self.assertTrue(third_spider.do_dry_run)
        self.assertTrue(fourth_spider.do_dry_run)
        self.assertFalse(fifth_spider.do_dry_run)
        self.assertFalse(sixth_spider.do_dry_run)
        self.assertFalse(seventh_spider.do_dry_run)
        self.assertFalse(eighth_spider.do_dry_run)
コード例 #8
0
    def test_raises_drop_item_when_clip_type_does_not_match_target(self):
        item = NaverTvClip(
            clip_id=13875922,
            clip_type=NAVER_TV_CLIP_TYPE_CONDENSED_GAME,
            url='https://tv.naver.com/v/13875922',
            length=620,
            channel_path='/bearsvod',
            home_team_name='Doosan Bears',
            away_team_name='NC Dinos',
            year=2020,
            month=5,
            day=19
        )
        spider = NaverTvSpider(
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            start_date='2020-05-19',
            end_date='2020-05-19',
            do_dry_run=True
        )
        pipeline = ClipValidationPipeline()

        with self.assertRaisesRegex(scrapy.exceptions.DropItem, '^Clip type'):
            pipeline.process_item(item, spider)
コード例 #9
0
    def test_raises_drop_item_when_away_team_name_unknown(self):
        item = NaverTvClip(
            clip_id=13820293,
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            url='https://tv.naver.com/v/13820293',
            length=15813,
            channel_path='/wyvernsvod',
            home_team_name='SK Wyverns',
            away_team_name=KBO_LEAGUE_TEAM_NAME_UNKNOWN,
            year=2020,
            month=5,
            day=16
        )
        spider = NaverTvSpider(
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            start_date='2020-05-16',
            end_date='2020-05-16',
            do_dry_run=True
        )
        pipeline = ClipValidationPipeline()

        with self.assertRaisesRegex(scrapy.exceptions.DropItem, '^Away team name'):
            pipeline.process_item(item, spider)
コード例 #10
0
    def test_raises_drop_item_when_channel_path_is_invalid(self):
        item = NaverTvClip(
            clip_id=13820293,
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            url='https://tv.naver.com/v/13820293',
            length=15813,
            channel_path='/kbofanpage',
            home_team_name='SK Wyverns',
            away_team_name='NC Dinos',
            year=2020,
            month=5,
            day=16
        )
        spider = NaverTvSpider(
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            start_date='2020-05-16',
            end_date='2020-05-16',
            do_dry_run=True
        )
        pipeline = ClipValidationPipeline()

        with self.assertRaises(scrapy.exceptions.DropItem):
            pipeline.process_item(item, spider)
コード例 #11
0
    def test_returns_item_when_processed(self):
        item = NaverTvClip(
            clip_id=13820293,
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            url='https://tv.naver.com/v/13820293',
            length=15813,
            channel_path='/wyvernsvod',
            home_team_name='SK Wyverns',
            away_team_name='NC Dinos',
            year=2020,
            month=5,
            day=16
        )
        with tempfile.TemporaryDirectory() as output_dir_path:
            with tempfile.TemporaryDirectory() as tmp_dir_path:
                spider = NaverTvSpider(
                    clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
                    start_date='2020-05-16',
                    end_date='2020-05-16',
                    output_dir_path=output_dir_path,
                    tmp_dir_path=tmp_dir_path
                )
                pipeline = ClipDownloadPipeline()

                with patch('youtube_dl.YoutubeDL') as youtube_dl_mock:
                    result = pipeline.process_item(item, spider)

        args, _ = youtube_dl_mock.call_args
        self.assertEqual(item, result)
        self.assertEqual(
            os.path.join(
                tmp_dir_path,
                'KBO League - S2020E13820293 - 2020.05.16 - NC Dinos at SK Wyverns.mp4'
            ),
            args[0]['outtmpl']
        )
コード例 #12
0
    def test_returns_item_when_processed(self):
        item = NaverTvClip(
            clip_id=13820293,
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            url='https://tv.naver.com/v/13820293',
            length=15813,
            channel_path='/wyvernsvod',
            home_team_name='SK Wyverns',
            away_team_name='NC Dinos',
            year=2020,
            month=5,
            day=16
        )
        spider = NaverTvSpider(
            clip_type=NAVER_TV_CLIP_TYPE_FULL_GAME,
            start_date='2020-05-16',
            end_date='2020-05-16',
            do_dry_run=True
        )
        pipeline = ClipValidationPipeline()

        result = pipeline.process_item(item, spider)

        self.assertEqual(item, result)