def test_change_solution(self, product: Product): solution = ReleaseInfosSolution() product.release_infos = HistoricalReleases([ Release(date(2020, 1, 2), Price(12000)), Release(date(2023, 2, 2), Price(12000)), Release(date(2028, 1, 2), Price(12000)), ]) product.release_infos.sort() p_m = ProductModel.create( name="foo", release_infos=[ ProductReleaseInfo(initial_release_date=date(2020, 1, 2), price=12000), ProductReleaseInfo(initial_release_date=date(2023, 2, 2), price=12000), ProductReleaseInfo(initial_release_date=date(2028, 2, 2), price=12000), ]) solution.set_situation(ReleaseInfosStatus.CHANGE).execute( product_dataclass=product, product_model=p_m) assert ReleaseInfoHelper.compare_infos( product.release_infos, p_m.release_infos) is ReleaseInfosStatus.SAME
def product(): from figure_parser.extension_class import Price fake = Faker(['ja-JP']) release_infos = HistoricalReleases() for _ in range(random.randint(1, 4)): release_infos.append( Release( release_date=fake.date_object(), price=Price(random.randint(1000, 1000000), fake.boolean(chance_of_getting_true=25)) ) ) p = ProductBase( url=fake.url(), name=fake.name(), series=fake.name(), manufacturer=fake.company(), category=fake.name(), price=Price(random.randint(1000, 1000000), fake.boolean(chance_of_getting_true=25)), release_date=fake.date_object(), release_infos=release_infos, order_period=OrderPeriod(fake.date_time()), size=random.randint(1, 1000), scale=random.randint(1, 30), sculptors=[fake.name() for _ in range(2)], paintworks=[fake.name() for _ in range(2)], rerelease=fake.boolean(chance_of_getting_true=25), adult=fake.boolean(chance_of_getting_true=30), copyright=fake.text(max_nb_chars=20), releaser=fake.company(), distributer=fake.company(), jan=fake.jan13(), maker_id=str(random.randint(1, 1000)), images=[fake.uri() for _ in range(5)], thumbnail=fake.uri(), og_image=fake.uri(), ) return p
def test_delay(self): release_infos = HistoricalReleases( [Release(date(2020, 2, 2), Price(12000))]) p_m = ProductModel.create( name="foo", release_infos=[ ProductReleaseInfo(initial_release_date=date(2020, 1, 2), price=12000) ]) assert ReleaseInfoHelper.compare_infos( release_infos, p_m.release_infos) == ReleaseInfosStatus.CHANGE
def test_last_release_date_was_brought_forward(self): release_infos = HistoricalReleases([ Release(date(2020, 1, 2), Price(12000)), Release(date(2023, 2, 2), Price(12000)), Release(date(2028, 1, 2), Price(12000)), ]) p_m = ProductModel.create( name="foo", release_infos=[ ProductReleaseInfo(initial_release_date=date(2020, 1, 2), price=12000), ProductReleaseInfo(initial_release_date=date(2023, 2, 2), price=12000), ProductReleaseInfo(initial_release_date=date(2028, 2, 2), price=12000), ]) assert ReleaseInfoHelper.compare_infos( release_infos, p_m.release_infos) == ReleaseInfosStatus.CHANGE
def test_delay_has_been_confirmed(self): release_infos = HistoricalReleases([ Release(date(2019, 1, 2), Price(12000)), Release(date(2020, 5, 2), Price(12000)), Release(date(2023, 2, 2), Price(12000)), ]) p_m = ProductModel.create( name="foo", release_infos=[ ProductReleaseInfo(initial_release_date=date(2019, 1, 2), price=12000), ProductReleaseInfo(initial_release_date=date(2020, 2, 2), adjusted_release_date=date(2020, 5, 2), price=12000), ProductReleaseInfo(initial_release_date=date(2023, 2, 2), price=12000), ]) assert ReleaseInfoHelper.compare_infos( release_infos, p_m.release_infos) == ReleaseInfosStatus.SAME