104 lines
3.7 KiB
Python
104 lines
3.7 KiB
Python
#!/usr/bin/env python
|
|
|
|
"""Tests for `pymojo` package."""
|
|
import datetime
|
|
import unittest
|
|
from click.testing import CliRunner
|
|
|
|
from pymojo import pymojo
|
|
from pymojo import cli
|
|
|
|
import vcr
|
|
|
|
class TestPymojo(unittest.TestCase):
|
|
"""Tests for `pymojo` package."""
|
|
|
|
def setUp(self):
|
|
"""Set up test fixtures, if any."""
|
|
|
|
def tearDown(self):
|
|
"""Tear down test fixtures, if any."""
|
|
|
|
def test_000_get_new_mojo_id(self):
|
|
legacy_id = "it2"
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/{legacy_id}.yaml'):
|
|
new_id = pymojo.get_new_mojo_id(legacy_id)
|
|
self.assertEqual("rl1107461633", new_id)
|
|
|
|
invalid_id = "xxxxx"
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/{invalid_id}.yaml'):
|
|
new_id = pymojo.get_new_mojo_id(invalid_id)
|
|
self.assertIsNone(None, new_id)
|
|
|
|
def test_001_get_imdbid_from_mojoid(self):
|
|
mojoid = "rl1107461633"
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/{mojoid}.yaml'):
|
|
imdbid = pymojo.get_imdb_id_from_mojo_id(mojoid)
|
|
self.assertEqual("tt7349950", imdbid)
|
|
|
|
def test_002_get_domestic_gross(self):
|
|
mojoid = "rl1107461633"
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/{mojoid}.yaml'):
|
|
gross = pymojo.get_domestic_gross(mojoid)
|
|
self.assertEqual(211593228, gross)
|
|
|
|
mojoid = "rl3562898177" # not released yet
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/{mojoid}.yaml'):
|
|
gross = pymojo.get_domestic_gross(mojoid)
|
|
self.assertEqual(0, gross)
|
|
|
|
def test_003_get_mojo_id_from_imdb_id(self):
|
|
imdb_id = "tt7349950"
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/tt7349950.yaml'):
|
|
mojoid = pymojo.get_mojo_id_from_imdb_id(imdb_id)
|
|
self.assertEqual("rl1107461633", mojoid)
|
|
|
|
mojoid = "rl3562898177" # not released yet
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/{mojoid}.yaml'):
|
|
gross = pymojo.get_domestic_gross(mojoid)
|
|
self.assertEqual(0, gross)
|
|
|
|
def test_004_get_domestic_box_office_for_season(self):
|
|
season = "summer"
|
|
year = "2022"
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/summer-2022.yaml'):
|
|
season = "summer"
|
|
year = "2022"
|
|
l1 = pymojo.get_domestic_box_office_for_season(season, year)
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/summer-2019.yaml'):
|
|
season = "summer"
|
|
year = "2019"
|
|
l2 = pymojo.get_domestic_box_office_for_season(season, year)
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/summer-2018.yaml'):
|
|
season = "summer"
|
|
year = "2018"
|
|
l3 = pymojo.get_domestic_box_office_for_season(season, year)
|
|
pass
|
|
|
|
def test_005_get_release_schedule(self):
|
|
season = "summer"
|
|
year = "2022"
|
|
month = '5'
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/release-schedule-20223-1.yaml'):
|
|
l1 = pymojo.get_release_schedule(year, month)
|
|
|
|
def test_005_get_release_schedule_for_range(self):
|
|
season = "summer"
|
|
year = "2022"
|
|
month = '5'
|
|
with vcr.use_cassette(f'fixtures/vcr_cassettes/release-schedule-range-summer-2019.yaml'):
|
|
l1 = pymojo.get_release_schedule_for_range(
|
|
datetime.date(2019, 5, 3),
|
|
datetime.date(2019, 8, 31))
|
|
pass
|
|
|
|
def test_command_line_interface(self):
|
|
"""Test the CLI."""
|
|
runner = CliRunner()
|
|
result = runner.invoke(cli.main)
|
|
assert result.exit_code == 0
|
|
assert 'pymojo.cli.main' in result.output
|
|
help_result = runner.invoke(cli.main, ['--help'])
|
|
assert help_result.exit_code == 0
|
|
assert '--help Show this message and exit.' in help_result.output
|