def test_get_html_bad_schema():
	"""
	Gracefully fail on bad schema
	"""
	url = 'https://bad.url'
	html = TVScraper._get_html(url=url)
	assert html is None
def test_create_season_url():
    imdb_id = 'garbage'
    series_url = f'https://www.imdb.com/title/{imdb_id}'
    season_number = '666'

    url = TVScraper._create_season_url(series_url=series_url,
                                       season_number=season_number)
    assert url == f'{series_url}/episodes?season={season_number}'
Exemple #3
0
def main(title_id):
    """Console script for imdb_tv_scraper.

    TITLE_ID is the IMDB title identifier like ttXXXXXXX"""
    data = TVScraper.scrape_imdb_id(imdb_id=title_id)
    json_data = json.dumps(data)
    click.echo(json_data)
    return 0
def test_scrape_series_success(path):
    with open(path) as f:
        html = f.read()

    data = TVScraper._scrape_series(html=html)
    assert data['title']
    assert type(data['title']) is str

    assert data['seasons']
    assert type(data['seasons']) is int
def test_scrape_season_success(path):
    with open(path) as f:
        html = f.read()

    season_data = TVScraper._scrape_season(html=html)

    for episode in season_data:
        assert episode['title']
        assert type(episode['title']) is str

        assert episode['rating']
        assert type(episode['rating']) is float
def test_scrape_imdb_id_success():
	imdb_id = 'tt0412142'
	series_data = TVScraper.scrape_imdb_id(imdb_id=imdb_id)
	assert type(series_data) is dict
	assert series_data['title']
	assert series_data['seasons']
	for season in series_data['seasons']:
		assert season
		for episode in season:
			assert episode['title']
			assert type(episode['title']) is str
			assert episode['rating']
			assert type(episode['rating']) is float
def test_scrape_season_failure():
    season_data = TVScraper._scrape_season(html=None)
    assert season_data == []
def test_create_series_url():
    imdb_id = 'garbage'

    url = TVScraper._create_series_url(imdb_id=imdb_id)
    assert url == f'https://www.imdb.com/title/{imdb_id}'
def test_scrape_series_failure():

    data = TVScraper._scrape_series(html=None)

    assert data is None
def test_get_html_success():
	url = 'https://www.imdb.com/title/tt0412142'
	html = TVScraper._get_html(url=url)
	assert html
def test_scrape_imdb_id_bad_id():
	imdb_id = ''
	series_data = TVScraper.scrape_imdb_id(imdb_id=imdb_id)
	assert series_data is None
def test_get_html_not_found():
	url = 'https://www.imdb.com/title/123'
	html = TVScraper._get_html(url=url)
	assert html is None