def test_eras_constraint(self): no_eras_calendar = self.calendar_factory.build(eras=()) mismatch_eras_and_ranges_calendar = self.calendar_factory.build( eras=(FAKE.word(), FAKE.word()), era_ranges=(("-inf", "inf"), )) with pytest.raises(IntegrityError), self.session: self.session.add(no_eras_calendar) self.session.commit() with pytest.raises(IntegrityError), self.session: self.session.add(mismatch_eras_and_ranges_calendar) self.session.commit()
def test___repr__(self): name = FAKE.word() seconds_in_day = FAKE.random_int(min=1) convertible_clock = self.clock_factory.build( name=name, seconds_in_day=seconds_in_day ) assert ( repr(convertible_clock) == f"{name}(Seconds in a Day: {seconds_in_day})" )
def test_parse_hr_date_and_format_hr_date_are_reversible(self): calendar = self.calendar_factory.build( leap_year_cycles=(4, ), leap_year_cycle_ordinals=(4, ), leap_year_cycle_start=1, special_common_years=(), special_leap_years=(), leap_year_offset=0, era_ranges=(("-inf", 1), (1, "inf")), eras=(FAKE.word(), FAKE.word()), ) cdt = ConvertibleDate(calendar=calendar) common_ce_ast_year = (FAKE.random_int(min=1) * 4) - 1 common_ce_hr_year = common_ce_ast_year common_bce_ast_year = (FAKE.random_int(min=-9999, max=0) * 4) - 1 common_bce_hr_year = abs(common_bce_ast_year - 1) common_month, common_day = self.random_common_month_and_day(calendar) common_ce_ymd = common_ce_ast_year, common_month, common_day common_bce_ymd = common_bce_ast_year, common_month, common_day common_ce_hr_date = cdt.date_sep.join([ str(common_ce_hr_year), str(common_month), str(common_day), calendar.eras[1], ]) common_bce_hr_date = cdt.date_sep.join([ str(common_bce_hr_year), str(common_month), str(common_day), calendar.eras[0], ]) leap_ce_ast_year = leap_ce_hr_year = FAKE.random_int(min=1) * 4 leap_bce_ast_year = FAKE.random_int(min=-9999, max=0) * 4 leap_bce_hr_year = abs(leap_bce_ast_year - 1) leap_month, leap_day = self.random_leap_month_and_day(calendar) leap_ce_ymd = leap_ce_ast_year, leap_month, leap_day leap_bce_ymd = leap_bce_ast_year, leap_month, leap_day leap_bce_hr_date = cdt.date_sep.join([ str(leap_bce_hr_year), str(leap_month), str(leap_day), calendar.eras[0], ]) leap_ce_hr_date = cdt.date_sep.join([ str(leap_ce_hr_year), str(leap_month), str(leap_day), calendar.eras[1], ]) assert (cdt.parse_hr_date( cdt.format_hr_date(common_bce_ymd)) == common_bce_ymd) assert (cdt.parse_hr_date( cdt.format_hr_date(common_ce_ymd)) == common_ce_ymd) assert (cdt.parse_hr_date( cdt.format_hr_date(leap_bce_ymd)) == leap_bce_ymd) assert (cdt.parse_hr_date( cdt.format_hr_date(leap_ce_ymd)) == leap_ce_ymd) assert (cdt.format_hr_date( cdt.parse_hr_date(common_bce_hr_date)) == common_bce_hr_date) assert (cdt.format_hr_date( cdt.parse_hr_date(common_ce_hr_date)) == common_ce_hr_date) assert (cdt.format_hr_date( cdt.parse_hr_date(leap_bce_hr_date)) == leap_bce_hr_date) assert (cdt.format_hr_date( cdt.parse_hr_date(leap_ce_hr_date)) == leap_ce_hr_date)