Source: python-croniter
Version: 1.3.5-3
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20230925 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> make[1]: pyversions: No such file or directory
> py3versions: no X-Python3-Version in control file, using supported versions
> set -e ; set -x ; for pyvers in 3.11; do \
>       PYTHONPATH=. PYTHON=python$pyvers python$pyvers -m pytest -v . ; \
> done
> + PYTHONPATH=. PYTHON=python3.11 python3.11 -m pytest -v .
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.5, pytest-7.4.2, pluggy-1.3.0 -- 
> /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /<<PKGBUILDDIR>>
> collecting ... collected 119 items
> 
> src/croniter/tests/test_croniter.py::CroniterTest::testBlockDupRanges PASSED 
> [  0%]
> src/croniter/tests/test_croniter.py::CroniterTest::testBug1 PASSED       [  
> 1%]
> src/croniter/tests/test_croniter.py::CroniterTest::testBug2 PASSED       [  
> 2%]
> src/croniter/tests/test_croniter.py::CroniterTest::testBug3 PASSED       [  
> 3%]
> src/croniter/tests/test_croniter.py::CroniterTest::testBug57 PASSED      [  
> 4%]
> src/croniter/tests/test_croniter.py::CroniterTest::testDay PASSED        [  
> 5%]
> src/croniter/tests/test_croniter.py::CroniterTest::testError PASSED      [  
> 5%]
> src/croniter/tests/test_croniter.py::CroniterTest::testGetCurrent PASSED [  
> 6%]
> src/croniter/tests/test_croniter.py::CroniterTest::testHour PASSED       [  
> 7%]
> src/croniter/tests/test_croniter.py::CroniterTest::testISOWeekday PASSED [  
> 8%]
> src/croniter/tests/test_croniter.py::CroniterTest::testInitNoStartTime PASSED 
> [  9%]
> src/croniter/tests/test_croniter.py::CroniterTest::testLastDayOfMonth PASSED 
> [ 10%]
> src/croniter/tests/test_croniter.py::CroniterTest::testMinute PASSED     [ 
> 10%]
> src/croniter/tests/test_croniter.py::CroniterTest::testMonth PASSED      [ 
> 11%]
> src/croniter/tests/test_croniter.py::CroniterTest::testNthWeekDay PASSED [ 
> 12%]
> src/croniter/tests/test_croniter.py::CroniterTest::testOptimizeCronExpressions
>  PASSED [ 13%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPrevDayOfMonthWithCrossing
>  PASSED [ 14%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPrevLastDayOfMonth 
> PASSED [ 15%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPrevMinute PASSED [ 
> 15%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPrevNthWeekDay PASSED 
> [ 16%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPrevWeekDay PASSED [ 
> 17%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPrevWeekDay2 PASSED [ 
> 18%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPreviousDay PASSED [ 
> 19%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPreviousDow PASSED [ 
> 20%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPreviousHour PASSED [ 
> 21%]
> src/croniter/tests/test_croniter.py::CroniterTest::testPreviousMonth PASSED [ 
> 21%]
> src/croniter/tests/test_croniter.py::CroniterTest::testRangeWithUppercaseLastDayOfMonth
>  PASSED [ 22%]
> src/croniter/tests/test_croniter.py::CroniterTest::testSecond PASSED     [ 
> 23%]
> src/croniter/tests/test_croniter.py::CroniterTest::testSecondRepeat PASSED [ 
> 24%]
> src/croniter/tests/test_croniter.py::CroniterTest::testSecondSec PASSED  [ 
> 25%]
> src/croniter/tests/test_croniter.py::CroniterTest::testSundayToThursdayWithAlphaConversion
>  PASSED [ 26%]
> src/croniter/tests/test_croniter.py::CroniterTest::testTimezone PASSED   [ 
> 26%]
> src/croniter/tests/test_croniter.py::CroniterTest::testTimezoneDateutil 
> PASSED [ 27%]
> src/croniter/tests/test_croniter.py::CroniterTest::testTimezoneSummerTime 
> PASSED [ 28%]
> src/croniter/tests/test_croniter.py::CroniterTest::testTimezoneWinterTime 
> PASSED [ 29%]
> src/croniter/tests/test_croniter.py::CroniterTest::testWeekDay PASSED    [ 
> 30%]
> src/croniter/tests/test_croniter.py::CroniterTest::testWeekDayDayAnd PASSED [ 
> 31%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_bug34 PASSED     [ 
> 31%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_confirm_sort PASSED [ 
> 32%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_dst_issue90_st31ny 
> PASSED [ 33%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_error_alpha_cron 
> PASSED [ 34%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_error_bad_cron PASSED 
> [ 35%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_exactly_the_same_minute
>  PASSED [ 36%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_explicit_year_forward 
> PASSED [ 36%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_hash_mixup_all_fri_3rd_sat
>  PASSED [ 37%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_invalid_zerorepeat 
> PASSED [ 38%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_is_valid PASSED  [ 
> 39%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue145_getnext 
> PASSED [ 40%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue151 PASSED  [ 
> 41%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue156 PASSED  [ 
> 42%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue_142_dow PASSED 
> [ 42%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue_47 PASSED  [ 
> 43%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue_k11 PASSED [ 
> 44%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue_k12 PASSED [ 
> 45%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue_k6 PASSED  [ 
> 46%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_issue_monsun_117 
> PASSED [ 47%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_last_out_of_range 
> PASSED [ 47%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_friday PASSED [ 
> 48%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_friday_2hours 
> PASSED [ 49%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_friday_2xh_2xm 
> PASSED [ 50%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_mixup_4th_and_last
>  PASSED [ 51%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_mixup_all_fri_last_sat
>  PASSED [ 52%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_mixup_firstlast_sat
>  PASSED [ 52%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_saturday_rev 
> PASSED [ 53%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_lwom_tue_thu PASSED [ 
> 54%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_match PASSED     [ 
> 55%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_milliseconds PASSED [ 
> 56%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_mixdow PASSED    [ 
> 57%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_multiple_months 
> PASSED [ 57%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_next_when_now_satisfies_cron
>  PASSED [ 58%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_nth_as_last_wday_simple
>  PASSED [ 59%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_nth_out_of_range 
> PASSED [ 60%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_nth_wday_simple 
> PASSED [ 61%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_overflow PASSED  [ 
> 62%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_rangeGenerator PASSED 
> [ 63%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_std_dst PASSED   [ 
> 63%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_std_dst2 PASSED  [ 
> 64%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_std_dst3 PASSED  [ 
> 65%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_wdom_core_leap_year 
> PASSED [ 66%]
> src/croniter/tests/test_croniter.py::CroniterTest::test_weekday_range PASSED 
> [ 67%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_daily 
> PASSED [ 68%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_division
>  PASSED [ 68%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_epoch_change
>  PASSED [ 69%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_float 
> PASSED [ 70%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_hourly 
> PASSED [ 71%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_id_bytes
>  PASSED [ 72%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_id_change
>  PASSED [ 73%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_monthly 
> PASSED [ 73%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_range 
> PASSED [ 74%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_range_division
>  PASSED [ 75%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_second 
> PASSED [ 76%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_weekly 
> PASSED [ 77%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_hash_yearly 
> PASSED [ 78%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_invalid_definition
>  PASSED [ 78%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_invalid_divisor
>  PASSED [ 79%]
> src/croniter/tests/test_croniter_hash.py::CroniterHashTest::test_invalid_hash_id_type
>  PASSED [ 80%]
> src/croniter/tests/test_croniter_hash.py::CroniterWordAliasTest::test_hash_word_annually
>  PASSED [ 81%]
> src/croniter/tests/test_croniter_hash.py::CroniterWordAliasTest::test_hash_word_daily
>  PASSED [ 82%]
> src/croniter/tests/test_croniter_hash.py::CroniterWordAliasTest::test_hash_word_hourly
>  PASSED [ 83%]
> src/croniter/tests/test_croniter_hash.py::CroniterWordAliasTest::test_hash_word_midnight
>  PASSED [ 84%]
> src/croniter/tests/test_croniter_hash.py::CroniterWordAliasTest::test_hash_word_monthly
>  PASSED [ 84%]
> src/croniter/tests/test_croniter_hash.py::CroniterWordAliasTest::test_hash_word_weekly
>  PASSED [ 85%]
> src/croniter/tests/test_croniter_hash.py::CroniterWordAliasTest::test_hash_word_yearly
>  PASSED [ 86%]
> src/croniter/tests/test_croniter_random.py::CroniterRandomTest::test_random 
> PASSED [ 87%]
> src/croniter/tests/test_croniter_random.py::CroniterRandomTest::test_random_float
>  PASSED [ 88%]
> src/croniter/tests/test_croniter_random.py::CroniterRandomTest::test_random_range
>  PASSED [ 89%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_1day_step 
> PASSED [ 89%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_1day_step_no_ends
>  PASSED [ 90%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_1minute_step_float
>  PASSED [ 91%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_1month_step
>  PASSED [ 92%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_auto_ret_type
>  PASSED [ 93%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_croniter_range_derived_class
>  PASSED [ 94%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_dt_types 
> PASSED [ 94%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_extra_hour_day_prio
>  FAILED [ 95%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_input_type_exceptions
>  PASSED [ 96%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_issue145_getnext
>  PASSED [ 97%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_issue145_range
>  PASSED [ 98%]
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_timezone_dst
>  FAILED [ 99%]
> src/croniter/tests/test_speed.py::TestCase::test_Noop PASSED             
> [100%]
> 
> =================================== FAILURES 
> ===================================
> __________________ CroniterRangeTest.test_extra_hour_day_prio 
> __________________
> 
> self = <croniter.tests.test_croniter_range.CroniterRangeTest 
> testMethod=test_extra_hour_day_prio>
> 
>     def test_extra_hour_day_prio(self):
>         def datetime_tz(*args, **kw):
>             """ Defined this in another branch.  single-use-version """
>             tzinfo = kw.pop("tzinfo")
>             return tzinfo.localize(datetime(*args))
> >       tz = pytz.timezone("US/Eastern")
> 
> src/croniter/tests/test_croniter_range.py:96: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> zone = 'US/Eastern'
> 
>     def timezone(zone):
>         r''' Return a datetime.tzinfo implementation for the given timezone
>     
>         >>> from datetime import datetime, timedelta
>         >>> utc = timezone('UTC')
>         >>> eastern = timezone('US/Eastern')
>         >>> eastern.zone
>         'US/Eastern'
>         >>> timezone(unicode('US/Eastern')) is eastern
>         True
>         >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
>         >>> loc_dt = utc_dt.astimezone(eastern)
>         >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
>         >>> loc_dt.strftime(fmt)
>         '2002-10-27 01:00:00 EST (-0500)'
>         >>> (loc_dt - timedelta(minutes=10)).strftime(fmt)
>         '2002-10-27 00:50:00 EST (-0500)'
>         >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt)
>         '2002-10-27 01:50:00 EDT (-0400)'
>         >>> (loc_dt + timedelta(minutes=10)).strftime(fmt)
>         '2002-10-27 01:10:00 EST (-0500)'
>     
>         Raises UnknownTimeZoneError if passed an unknown zone.
>     
>         >>> try:
>         ...     timezone('Asia/Shangri-La')
>         ... except UnknownTimeZoneError:
>         ...     print('Unknown')
>         Unknown
>     
>         >>> try:
>         ...     timezone(unicode('\N{TRADE MARK SIGN}'))
>         ... except UnknownTimeZoneError:
>         ...     print('Unknown')
>         Unknown
>     
>         '''
>         if zone is None:
>             raise UnknownTimeZoneError(None)
>     
>         if zone.upper() == 'UTC':
>             return utc
>     
>         try:
>             zone = ascii(zone)
>         except UnicodeEncodeError:
>             # All valid timezones are ASCII
>             raise UnknownTimeZoneError(zone)
>     
>         zone = _case_insensitive_zone_lookup(_unmunge_zone(zone))
>         if zone not in _tzinfo_cache:
>             if zone in all_timezones_set:  # noqa
>                 fp = open_resource(zone)
>                 try:
>                     _tzinfo_cache[zone] = build_tzinfo(zone, fp)
>                 finally:
>                     fp.close()
>             else:
> >               raise UnknownTimeZoneError(zone)
> E               pytz.exceptions.UnknownTimeZoneError: 'US/Eastern'
> 
> /usr/lib/python3/dist-packages/pytz/__init__.py:202: UnknownTimeZoneError
> _____________________ CroniterRangeTest.test_timezone_dst 
> ______________________
> 
> self = <croniter.tests.test_croniter_range.CroniterRangeTest 
> testMethod=test_timezone_dst>
> 
>     def test_timezone_dst(self):
>         """ Test across DST transition, which technically is a timzone 
> change. """
> >       tz = pytz.timezone("US/Eastern")
> 
> src/croniter/tests/test_croniter_range.py:84: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> zone = 'US/Eastern'
> 
>     def timezone(zone):
>         r''' Return a datetime.tzinfo implementation for the given timezone
>     
>         >>> from datetime import datetime, timedelta
>         >>> utc = timezone('UTC')
>         >>> eastern = timezone('US/Eastern')
>         >>> eastern.zone
>         'US/Eastern'
>         >>> timezone(unicode('US/Eastern')) is eastern
>         True
>         >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
>         >>> loc_dt = utc_dt.astimezone(eastern)
>         >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
>         >>> loc_dt.strftime(fmt)
>         '2002-10-27 01:00:00 EST (-0500)'
>         >>> (loc_dt - timedelta(minutes=10)).strftime(fmt)
>         '2002-10-27 00:50:00 EST (-0500)'
>         >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt)
>         '2002-10-27 01:50:00 EDT (-0400)'
>         >>> (loc_dt + timedelta(minutes=10)).strftime(fmt)
>         '2002-10-27 01:10:00 EST (-0500)'
>     
>         Raises UnknownTimeZoneError if passed an unknown zone.
>     
>         >>> try:
>         ...     timezone('Asia/Shangri-La')
>         ... except UnknownTimeZoneError:
>         ...     print('Unknown')
>         Unknown
>     
>         >>> try:
>         ...     timezone(unicode('\N{TRADE MARK SIGN}'))
>         ... except UnknownTimeZoneError:
>         ...     print('Unknown')
>         Unknown
>     
>         '''
>         if zone is None:
>             raise UnknownTimeZoneError(None)
>     
>         if zone.upper() == 'UTC':
>             return utc
>     
>         try:
>             zone = ascii(zone)
>         except UnicodeEncodeError:
>             # All valid timezones are ASCII
>             raise UnknownTimeZoneError(zone)
>     
>         zone = _case_insensitive_zone_lookup(_unmunge_zone(zone))
>         if zone not in _tzinfo_cache:
>             if zone in all_timezones_set:  # noqa
>                 fp = open_resource(zone)
>                 try:
>                     _tzinfo_cache[zone] = build_tzinfo(zone, fp)
>                 finally:
>                     fp.close()
>             else:
> >               raise UnknownTimeZoneError(zone)
> E               pytz.exceptions.UnknownTimeZoneError: 'US/Eastern'
> 
> /usr/lib/python3/dist-packages/pytz/__init__.py:202: UnknownTimeZoneError
> =========================== short test summary info 
> ============================
> FAILED 
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_extra_hour_day_prio
> FAILED 
> src/croniter/tests/test_croniter_range.py::CroniterRangeTest::test_timezone_dst
> ======================== 2 failed, 117 passed in 0.35s 
> =========================
> make[1]: *** [debian/rules:25: override_dh_auto_test] Error 1


The full build log is available from:
http://qa-logs.debian.net/2023/09/25/python-croniter_1.3.5-3_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230925;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230925&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to