Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bash_completion.test.py fails on NixOS #3727

Open
doronbehar opened this issue Dec 17, 2024 · 7 comments
Open

bash_completion.test.py fails on NixOS #3727

doronbehar opened this issue Dec 17, 2024 · 7 comments

Comments

@doronbehar
Copy link
Contributor

While building for NixOS (see NixOS/nixpkgs#359893 ), I encountered the following Python test failures:

/nix/store/4k2h9qsps52n1v56zq03yi67dwmxa81i-cmake-3.30.5/bin/ctest --force-new-ctest-process 
Test project /build/source/build
        Start   1: col_test.cpp
        Start   2: dom_test.cpp
        Start   3: eval_test.cpp
        Start   4: lexer_test.cpp
        Start   5: t_test.cpp
        Start   6: tw_2689_test.cpp
        Start   7: tdb2_test.cpp
        Start   8: tc_cpp_test.cpp
  1/176 Test   #1: col_test.cpp ..........................   Passed    0.01 sec
  2/176 Test   #2: dom_test.cpp ..........................   Passed    0.01 sec
  3/176 Test   #3: eval_test.cpp .........................   Passed    0.01 sec
  4/176 Test   #5: t_test.cpp ............................   Passed    0.01 sec
  5/176 Test   #6: tw_2689_test.cpp ......................   Passed    0.01 sec
        Start   9: util_test.cpp
        Start  10: variant_add_test.cpp
        Start  11: variant_and_test.cpp
        Start  12: variant_cast_test.cpp
        Start  13: variant_divide_test.cpp
  6/176 Test   #4: lexer_test.cpp ........................   Passed    0.01 sec
  7/176 Test   #8: tc_cpp_test.cpp .......................   Passed    0.01 sec
  8/176 Test   #9: util_test.cpp .........................   Passed    0.01 sec
  9/176 Test  #10: variant_add_test.cpp ..................   Passed    0.01 sec
 10/176 Test  #11: variant_and_test.cpp ..................   Passed    0.00 sec
        Start  14: variant_equal_test.cpp
        Start  15: variant_exp_test.cpp
        Start  16: variant_gt_test.cpp
        Start  17: variant_gte_test.cpp
        Start  18: variant_inequal_test.cpp
 11/176 Test  #12: variant_cast_test.cpp .................   Passed    0.01 sec
 12/176 Test  #13: variant_divide_test.cpp ...............   Passed    0.01 sec
 13/176 Test  #14: variant_equal_test.cpp ................   Passed    0.01 sec
 14/176 Test  #15: variant_exp_test.cpp ..................   Passed    0.01 sec
 15/176 Test  #16: variant_gt_test.cpp ...................   Passed    0.00 sec
        Start  19: variant_lt_test.cpp
        Start  20: variant_lte_test.cpp
        Start  21: variant_match_test.cpp
        Start  22: variant_math_test.cpp
        Start  23: variant_modulo_test.cpp
 16/176 Test  #17: variant_gte_test.cpp ..................   Passed    0.01 sec
 17/176 Test  #18: variant_inequal_test.cpp ..............   Passed    0.01 sec
 18/176 Test  #19: variant_lt_test.cpp ...................   Passed    0.01 sec
 19/176 Test  #20: variant_lte_test.cpp ..................   Passed    0.00 sec
        Start  24: variant_multiply_test.cpp
        Start  25: variant_nomatch_test.cpp
        Start  26: variant_not_test.cpp
        Start  27: variant_or_test.cpp
 20/176 Test  #21: variant_match_test.cpp ................   Passed    0.01 sec
 21/176 Test  #22: variant_math_test.cpp .................   Passed    0.01 sec
 22/176 Test  #23: variant_modulo_test.cpp ...............   Passed    0.01 sec
 23/176 Test  #24: variant_multiply_test.cpp .............   Passed    0.01 sec
 24/176 Test  #25: variant_nomatch_test.cpp ..............   Passed    0.00 sec
        Start  28: variant_partial_test.cpp
        Start  29: variant_subtract_test.cpp
        Start  30: variant_xor_test.cpp
        Start  31: view_test.cpp
        Start  32: abbreviation.test.py
 25/176 Test  #26: variant_not_test.cpp ..................   Passed    0.01 sec
 26/176 Test  #27: variant_or_test.cpp ...................   Passed    0.01 sec
 27/176 Test  #28: variant_partial_test.cpp ..............   Passed    0.01 sec
 28/176 Test  #29: variant_subtract_test.cpp .............   Passed    0.00 sec
 29/176 Test  #30: variant_xor_test.cpp ..................   Passed    0.00 sec
        Start  33: add.test.py
        Start  34: alias.test.py
        Start  35: annotate.test.py
        Start  36: append.test.py
        Start  37: args.test.py
 30/176 Test   #7: tdb2_test.cpp .........................   Passed    0.04 sec
 31/176 Test  #31: view_test.cpp .........................   Passed    0.01 sec
        Start  38: bash_completion.test.py
        Start  39: blocked.test.py
 32/176 Test  #39: blocked.test.py .......................   Passed    0.31 sec
        Start  40: bulk.test.py
 33/176 Test  #37: args.test.py ..........................   Passed    0.63 sec
        Start  41: burndown.test.py
 34/176 Test  #36: append.test.py ........................   Passed    0.65 sec
        Start  42: calc.test.py
 35/176 Test  #42: calc.test.py ..........................   Passed    0.32 sec
        Start  43: calendar.test.py
 36/176 Test  #41: burndown.test.py ......................   Passed    0.93 sec
        Start  44: caseless.test.py
 37/176 Test  #38: bash_completion.test.py ...............***Failed    1.66 sec
1..unk
not ok 1 - bash_completion.test.py: aliases should be expanded
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'samplealias' not found in ''
not ok 2 - bash_completion.test.py: commands should be expanded
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'modify' not found in ''
ok 3 - bash_completion.test.py: no gc coming from bash completion
ok 4 - bash_completion.test.py: project: should be expanded and dependent on abbreviation minimum
not ok 5 - bash_completion.test.py: project: expansion expanded after rc.abbreviation.minimum
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'todd' not found in ''
ok 6 - bash_completion.test.py: project: fails if shorter than rc.abbreviation.minimum
ok 7 - bash_completion.test.py: project: expansion fails on non matching attribute
Ran 7 tests in 1.490s

FAILED (failures=3)

        Start  45: color.cmd.test.py
 38/176 Test  #34: alias.test.py .........................   Passed    1.83 sec
        Start  46: color.rules.test.py
 39/176 Test  #32: abbreviation.test.py ..................   Passed    1.91 sec
        Start  47: columns.test.py
 40/176 Test  #33: add.test.py ...........................   Passed    2.05 sec
        Start  48: commands.test.py
 41/176 Test  #45: color.cmd.test.py .....................   Passed    0.40 sec
        Start  49: completed.test.py
 42/176 Test  #35: annotate.test.py ......................   Passed    2.13 sec
        Start  50: configuration.test.py
 43/176 Test  #48: commands.test.py ......................   Passed    0.25 sec
        Start  51: confirmation.test.py
 44/176 Test  #49: completed.test.py .....................   Passed    0.42 sec
        Start  52: context.test.py
 45/176 Test  #50: configuration.test.py .................   Passed    0.65 sec
        Start  53: count.test.py
 46/176 Test  #44: caseless.test.py ......................   Passed    1.31 sec
        Start  54: custom.config.test.py
 47/176 Test  #40: bulk.test.py ..........................   Passed    2.60 sec
        Start  55: custom.recur_ind.test.py
 48/176 Test  #53: count.test.py .........................   Passed    0.37 sec
        Start  56: custom.test.py
 49/176 Test  #55: custom.recur_ind.test.py ..............   Passed    0.37 sec
        Start  57: custom.tag_ind.test.py
 50/176 Test  #54: custom.config.test.py .................   Passed    0.45 sec
        Start  58: date.iso.test.py
 51/176 Test  #51: confirmation.test.py ..................   Passed    1.07 sec
        Start  59: dateformat.test.py
 52/176 Test  #58: date.iso.test.py ......................   Passed    0.32 sec
        Start  60: datesort.test.py
 53/176 Test  #57: custom.tag_ind.test.py ................   Passed    0.38 sec
        Start  61: datetime-negative.test.py
 54/176 Test  #43: calendar.test.py ......................   Passed    2.78 sec
        Start  62: debug.test.py
 55/176 Test  #46: color.rules.test.py ...................   Passed    1.98 sec
        Start  63: default.test.py
 56/176 Test  #60: datesort.test.py ......................   Passed    0.44 sec
        Start  64: delete.test.py
 57/176 Test  #56: custom.test.py ........................   Passed    0.98 sec
        Start  65: denotate.test.py
 58/176 Test  #62: debug.test.py .........................   Passed    0.76 sec
        Start  66: dependencies.test.py
 59/176 Test  #59: dateformat.test.py ....................   Passed    1.33 sec
        Start  67: diag.test.py
 60/176 Test  #63: default.test.py .......................   Passed    0.99 sec
        Start  68: diag_color.test.py
 61/176 Test  #67: diag.test.py ..........................   Passed    0.24 sec
        Start  69: dom2.test.py
 62/176 Test  #65: denotate.test.py ......................   Passed    0.81 sec
        Start  70: due.test.py
 63/176 Test  #68: diag_color.test.py ....................   Passed    0.44 sec
        Start  71: duplicate.test.py
 64/176 Test  #64: delete.test.py ........................   Passed    1.30 sec
        Start  72: edit.test.py
 65/176 Test  #47: columns.test.py .......................   Passed    3.86 sec
        Start  73: encoding.test.py
 66/176 Test  #70: due.test.py ...........................   Passed    1.27 sec
        Start  74: enpassant.test.py
 67/176 Test  #72: edit.test.py ..........................   Passed    0.93 sec
        Start  75: exec.test.py
 68/176 Test  #73: encoding.test.py ......................   Passed    0.56 sec
        Start  76: export.test.py
 69/176 Test  #71: duplicate.test.py .....................   Passed    1.14 sec
        Start  77: feature.559.test.py
 70/176 Test  #77: feature.559.test.py ...................   Passed    0.26 sec
        Start  78: feature.default.project.test.py
 71/176 Test  #75: exec.test.py ..........................   Passed    0.48 sec
        Start  79: feature.print.empty.columns.test.py
 72/176 Test  #79: feature.print.empty.columns.test.py ...   Passed    0.51 sec
        Start  80: feature.recurrence.test.py
 73/176 Test  #80: feature.recurrence.test.py ............   Passed    0.51 sec
        Start  81: feedback.test.py
 74/176 Test  #69: dom2.test.py ..........................   Passed    2.97 sec
        Start  82: filter.test.py
 75/176 Test  #52: context.test.py .......................   Passed    5.60 sec
        Start  83: fontunderline.test.py
 76/176 Test  #81: feedback.test.py ......................   Passed    0.47 sec
        Start  84: format.test.py
 77/176 Test  #83: fontunderline.test.py .................   Passed    0.31 sec
        Start  85: gc.test.py
 78/176 Test  #78: feature.default.project.test.py .......   Passed    1.81 sec
        Start  86: helpers.test.py
 79/176 Test  #74: enpassant.test.py .....................   Passed    2.99 sec
        Start  87: history.test.py
 80/176 Test  #86: helpers.test.py .......................   Passed    0.87 sec
        Start  88: hooks.env.test.py
 81/176 Test  #85: gc.test.py ............................   Passed    1.25 sec
        Start  89: hooks.on-add.test.py
 82/176 Test  #88: hooks.env.test.py .....................***Failed    0.35 sec
1..unk
not ok 1 - hooks.env.test.py: on-launch-env - a well-behaved, successful, on-launch hook that echoes its env.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'version']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_l6vrbr8i/hooks/on-launch-good-env' Error: No such file or directory
#        TASKRC override: /build/task_l6vrbr8i/test.rc
#        TASKDATA override: /build/task_l6vrbr8i
#        Hook Error: Expected feedback from failing hook script: on-launch-good-env
#        
#        *** End STDERR ***
not ok 2 - hooks.env.test.py: Verify that 'debug.hooks' shows hook details
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'version', 'rc.debug.hooks:2']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_ia4fo1r7/hooks/on-launch-good-env' Error: No such file or directory
#        Timer Config::load (/build/task_ia4fo1r7/test.rc) 0.001188 sec
#        Found hook script /build/task_ia4fo1r7/hooks/on-launch-good-env
#        Found misnamed hook script /build/task_ia4fo1r7/hooks/original_on-launch-good-env
#        Found misnamed hook script /build/task_ia4fo1r7/hooks/original_on-launch-good-env.log.in
#        Found misnamed hook script /build/task_ia4fo1r7/hooks/original_on-launch-good-env.log.out
#        Hook: Calling /build/task_ia4fo1r7/hooks/on-launch-good-env
#        Hook: input
#        Hooks: args
#          api:2
#          args:/build/source/build/src/task version rc.debug.hooks:2
#          command:version
#          rc:/build/task_ia4fo1r7/test.rc
#          data:/build/task_ia4fo1r7
#          version:3.2.0
#        Timer Hooks::execute (/build/task_ia4fo1r7/hooks/on-launch-good-env) 0.001499 sec
#        Hook: output
#        Hook: Completed with status 255
#         
#        TASKRC override: /build/task_ia4fo1r7/test.rc
#        TASKDATA override: /build/task_ia4fo1r7
#        Configuration override rc.debug.hooks:2
#        Hook Error: Expected feedback from failing hook script: on-launch-good-env
#        
#        *** End STDERR ***
not ok 3 - hooks.env.test.py: Verify that 'diagnostics' can see hook details
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'diagnostics']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_s5jwz1ah/hooks/on-launch-good-env' Error: No such file or directory
#        TASKRC override: /build/task_s5jwz1ah/test.rc
#        TASKDATA override: /build/task_s5jwz1ah
#        Hook Error: Expected feedback from failing hook script: on-launch-good-env
#        
#        *** End STDERR ***
Ran 3 tests in 0.264s

FAILED (errors=3)

        Start  90: hooks.on-launch.test.py
 83/176 Test  #76: export.test.py ........................   Passed    3.36 sec
        Start  91: hooks.on-modify.test.py
 84/176 Test  #87: history.test.py .......................   Passed    0.86 sec
        Start  92: hyphenate.test.py
 85/176 Test  #90: hooks.on-launch.test.py ...............***Failed    0.44 sec
1..unk
not ok 1 - hooks.on-launch.test.py: on-launch-bad - a well-behaved, failing, on-launch hook.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       1 calls expected for on-launch-bad but found []
not ok 2 - hooks.on-launch.test.py: on-launch-good - a well-behaved, successful, on-launch hook.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'version']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_qyzl2kic/hooks/on-launch-good' Error: No such file or directory
#        TASKRC override: /build/task_qyzl2kic/test.rc
#        TASKDATA override: /build/task_qyzl2kic
#        Hook Error: Expected feedback from failing hook script: on-launch-good
#        
#        *** End STDERR ***
not ok 3 - hooks.on-launch.test.py: on-launch-misbehave1 - Hook kills itself.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       1 calls expected for on-launch-misbehave1 but found []
not ok 4 - hooks.on-launch.test.py: on-launch-misbehave2 - Hook emits unexpected JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: Expected 0 JSON task(s), found 1' not found in "Failed to execute '/build/task_y35zt68v/hooks/on-launch-misbehave2' Error: No such file or directory
# TASKRC override: /build/task_y35zt68v/test.rc
# TASKDATA override: /build/task_y35zt68v
# Hook Error: Expected feedback from failing hook script: on-launch-misbehave2
# "
Ran 4 tests in 0.320s

FAILED (failures=3, errors=1)

        Start  93: ids.test.py
 86/176 Test  #89: hooks.on-add.test.py ..................***Failed    0.97 sec
1..unk
not ok 1 - hooks.on-add.test.py: on-add-accept - a well-behaved, successful, on-add hook.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'add', 'foo']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_de72ite0/hooks/on-add-accept' Error: No such file or directory
#        TASKRC override: /build/task_de72ite0/test.rc
#        TASKDATA override: /build/task_de72ite0
#        Hook Error: Expected feedback from failing hook script: on-add-accept
#        
#        *** End STDERR ***
not ok 2 - hooks.on-add.test.py: on-add-accept-modify - a well-behaved, successful, on-add hook, that modifies the added task.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'add', 'teh', 'foo']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_oakejuy6/hooks/on-add-modify' Error: No such file or directory
#        TASKRC override: /build/task_oakejuy6/test.rc
#        TASKDATA override: /build/task_oakejuy6
#        Hook Error: Expected feedback from failing hook script: on-add-modify
#        
#        *** End STDERR ***
not ok 3 - hooks.on-add.test.py: on-add-misbehave1 - does not consume input.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       1 calls expected for on-add-misbehave1 but found []
not ok 4 - hooks.on-add.test.py: on-add-misbehave2 - does not emit JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: Expected 1 JSON task(s), found 0' not found in "Failed to execute '/build/task_8wflsfnt/hooks/on-add-misbehave2' Error: No such file or directory
# TASKRC override: /build/task_8wflsfnt/test.rc
# TASKDATA override: /build/task_8wflsfnt
# Hook Error: Expected feedback from failing hook script: on-add-misbehave2
# "
not ok 5 - hooks.on-add.test.py: on-add-misbehave3 - emits additional JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: Expected 1 JSON task(s), found 2' not found in "Failed to execute '/build/task_cmq73lnx/hooks/on-add-misbehave3' Error: No such file or directory
# TASKRC override: /build/task_cmq73lnx/test.rc
# TASKDATA override: /build/task_cmq73lnx
# Hook Error: Expected feedback from failing hook script: on-add-misbehave3
# "
not ok 6 - hooks.on-add.test.py: on-add-misbehave4 - emits different task JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: JSON must be for the same task:' not found in "Failed to execute '/build/task_t_gpzbxb/hooks/on-add-misbehave4' Error: No such file or directory
# TASKRC override: /build/task_t_gpzbxb/test.rc
# TASKDATA override: /build/task_t_gpzbxb
# Hook Error: Expected feedback from failing hook script: on-add-misbehave4
# "
not ok 7 - hooks.on-add.test.py: on-add-misbehave5 - emits syntactically wrong JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: JSON syntax error in: {"}' not found in "Failed to execute '/build/task_btbc7b2e/hooks/on-add-misbehave5' Error: No such file or directory
# TASKRC override: /build/task_btbc7b2e/test.rc
# TASKDATA override: /build/task_btbc7b2e
# Hook Error: Expected feedback from failing hook script: on-add-misbehave5
# "
not ok 8 - hooks.on-add.test.py: on-add-misbehave6 - emits incomplete JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       "Hook Error: JSON Object missing 'uuid' attribute from hook script: on-add-misbehave6" not found in "Failed to execute '/build/task_qchtpu0w/hooks/on-add-misbehave6' Error: No such file or directory
# TASKRC override: /build/task_qchtpu0w/test.rc
# TASKDATA override: /build/task_qchtpu0w
# Hook Error: Expected feedback from failing hook script: on-add-misbehave6
# "
not ok 9 - hooks.on-add.test.py: on-add-reject - a well-behaved, failing, on-add hook.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       1 calls expected for on-add-reject but found []
Ran 9 tests in 0.834s

FAILED (failures=7, errors=2)

        Start  94: import.test.py
 87/176 Test  #91: hooks.on-modify.test.py ...............***Failed    1.16 sec
1..unk
not ok 1 - hooks.on-modify.test.py: on-modify-accept - a well-behaved, successful, on-modify hook.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', '1', 'modify', '+tag']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        Modifying task 1 'foo'.
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_v61i_def/hooks/on-modify-accept' Error: No such file or directory
#        TASKRC override: /build/task_v61i_def/test.rc
#        TASKDATA override: /build/task_v61i_def
#        Modifying task 1 'foo'.
#        
#        *** End STDERR ***
not ok 2 - hooks.on-modify.test.py: on-modify-misbehave2 - does not emit JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: Expected 1 JSON task(s), found 0' not found in "Failed to execute '/build/task_s6il45_m/hooks/on-modify-misbehave2' Error: No such file or directory
# TASKRC override: /build/task_s6il45_m/test.rc
# TASKDATA override: /build/task_s6il45_m
# Modifying task 1 'foo'.
# "
not ok 3 - hooks.on-modify.test.py: on-modify-misbehave3 - emits additional JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: Expected 1 JSON task(s), found 2' not found in "Failed to execute '/build/task_xz28cy2c/hooks/on-modify-misbehave3' Error: No such file or directory
# TASKRC override: /build/task_xz28cy2c/test.rc
# TASKDATA override: /build/task_xz28cy2c
# Modifying task 1 'foo'.
# "
not ok 4 - hooks.on-modify.test.py: on-modify-misbehave4 - emits different task JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: JSON must be for the same task:' not found in "Failed to execute '/build/task_kakr9pb3/hooks/on-modify-misbehave4' Error: No such file or directory
# TASKRC override: /build/task_kakr9pb3/test.rc
# TASKDATA override: /build/task_kakr9pb3
# Modifying task 1 'foo'.
# "
not ok 5 - hooks.on-modify.test.py: on-modify-misbehave5 - emits syntactically wrong JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: JSON syntax error in: {"}' not found in "Failed to execute '/build/task_qs4o8kt3/hooks/on-modify-misbehave5' Error: No such file or directory
# TASKRC override: /build/task_qs4o8kt3/test.rc
# TASKDATA override: /build/task_qs4o8kt3
# Modifying task 1 'foo'.
# "
not ok 6 - hooks.on-modify.test.py: on-modify-misbehave6 - emits incomplete JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       "Hook Error: JSON Object missing 'uuid' attribute from hook script: on-modify-misbehave6" not found in "Failed to execute '/build/task_nqgry02h/hooks/on-modify-misbehave6' Error: No such file or directory
# TASKRC override: /build/task_nqgry02h/test.rc
# TASKDATA override: /build/task_nqgry02h
# Modifying task 1 'foo'.
# "
not ok 7 - hooks.on-modify.test.py: on-modify-reject - a well-behaved, failing, on-modify hook.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       1 calls expected for on-modify-reject but found []
ok 8 - hooks.on-modify.test.py: on-modify-revert - revert all user modifications. # skip
# SKIP:
#       libfaketime/faketime is not installed
Ran 8 tests in 1.043s

FAILED (failures=6, errors=1, skipped=1)

        Start  95: import-v2.test.py
 88/176 Test  #92: hyphenate.test.py .....................   Passed    0.80 sec
        Start  96: info.test.py
 89/176 Test  #84: format.test.py ........................   Passed    2.90 sec
        Start  97: limit.test.py
 90/176 Test  #95: import-v2.test.py .....................   Passed    0.38 sec
        Start  98: list.all.projects.test.py
 91/176 Test  #96: info.test.py ..........................   Passed    0.58 sec
        Start  99: log.test.py
 92/176 Test  #98: list.all.projects.test.py .............   Passed    0.27 sec
        Start 100: logo.test.py
 93/176 Test #100: logo.test.py ..........................   Passed    0.29 sec
        Start 101: math.test.py
 94/176 Test  #99: log.test.py ...........................   Passed    0.54 sec
        Start 102: modify.test.py
 95/176 Test #102: modify.test.py ........................   Passed    0.47 sec
        Start 103: nag.test.py
 96/176 Test  #66: dependencies.test.py ..................   Passed    8.01 sec
        Start 104: news.test.py
 97/176 Test #101: math.test.py ..........................   Passed    0.79 sec
        Start 105: obfuscate.test.py
 98/176 Test  #97: limit.test.py .........................   Passed    1.73 sec
        Start 106: oldest.test.py
 99/176 Test #104: news.test.py ..........................   Passed    0.51 sec
        Start 107: operators.test.py
100/176 Test #105: obfuscate.test.py .....................   Passed    0.46 sec
        Start 108: overdue.test.py
101/176 Test #108: overdue.test.py .......................   Passed    0.41 sec
        Start 109: partial.test.py
102/176 Test #109: partial.test.py .......................   Passed    0.17 sec
        Start 110: prepend.test.py
103/176 Test #106: oldest.test.py ........................   Passed    0.78 sec
        Start 111: pri_sort.test.py
104/176 Test #110: prepend.test.py .......................   Passed    0.39 sec
        Start 112: project.test.py
105/176 Test #103: nag.test.py ...........................   Passed    1.85 sec
        Start 113: purge.test.py
106/176 Test #111: pri_sort.test.py ......................   Passed    0.67 sec
        Start 114: quotes.test.py
107/176 Test  #61: datetime-negative.test.py .............   Passed   10.86 sec
        Start 115: rc.override.test.py
108/176 Test #115: rc.override.test.py ...................   Passed    0.44 sec
        Start 116: recurrence.test.py
109/176 Test  #94: import.test.py ........................   Passed    4.47 sec
        Start 117: reports.test.py
110/176 Test #107: operators.test.py .....................   Passed    2.12 sec
        Start 118: search.test.py
111/176 Test #117: reports.test.py .......................   Passed    0.17 sec
        Start 119: sequence.test.py
112/176 Test #114: quotes.test.py ........................   Passed    0.88 sec
        Start 120: shell.test.py
113/176 Test #120: shell.test.py .........................   Passed    0.34 sec
        Start 121: show.test.py
114/176 Test #121: show.test.py ..........................   Passed    0.66 sec
        Start 122: sorting.test.py
115/176 Test #113: purge.test.py .........................   Passed    2.22 sec
        Start 123: special.test.py
116/176 Test #122: sorting.test.py .......................   Passed    0.36 sec
        Start 124: start.test.py
117/176 Test #119: sequence.test.py ......................   Passed    1.55 sec
        Start 125: stats.test.py
118/176 Test #123: special.test.py .......................   Passed    0.50 sec
        Start 126: substitute.test.py
119/176 Test #125: stats.test.py .........................   Passed    0.39 sec
        Start 127: sugar.test.py
120/176 Test #127: sugar.test.py .........................   Passed    0.58 sec
        Start 128: summary.test.py
121/176 Test #126: substitute.test.py ....................   Passed    1.15 sec
        Start 129: tag.test.py
122/176 Test #128: summary.test.py .......................   Passed    0.73 sec
        Start 130: taskrc.test.py
123/176 Test #130: taskrc.test.py ........................   Passed    0.19 sec
        Start 131: timesheet.test.py
124/176 Test #124: start.test.py .........................   Passed    2.19 sec
        Start 132: tw-1379.test.py
125/176 Test #118: search.test.py ........................   Passed    3.79 sec
        Start 133: tw-1837.test.py
126/176 Test #133: tw-1837.test.py .......................   Passed    0.25 sec
        Start 134: tw-1999.test.py
127/176 Test #112: project.test.py .......................   Passed    5.20 sec
        Start 135: tw-20.test.py
128/176 Test #131: timesheet.test.py .....................   Passed    0.73 sec
        Start 136: tw-2575.test.py
129/176 Test #134: tw-1999.test.py .......................   Passed    0.25 sec
        Start 137: tw-262.test.py
130/176 Test #135: tw-20.test.py .........................   Passed    0.39 sec
        Start 138: tw-295.test.py
131/176 Test  #82: filter.test.py ........................   Passed   11.76 sec
        Start 139: tw-3527.test.py
132/176 Test #138: tw-295.test.py ........................   Passed    0.29 sec
        Start 140: uda.test.py
133/176 Test #136: tw-2575.test.py .......................   Passed    1.44 sec
        Start 141: uda_orphan.test.py
134/176 Test #137: tw-262.test.py ........................   Passed    1.84 sec
        Start 142: uda_report.test.py
135/176 Test #132: tw-1379.test.py .......................   Passed    2.59 sec
        Start 143: uda_sort.test.py
136/176 Test #141: uda_orphan.test.py ....................   Passed    0.81 sec
        Start 144: undo.test.py
137/176 Test #116: recurrence.test.py ....................   Passed    6.84 sec
        Start 145: unicode.test.py
138/176 Test #142: uda_report.test.py ....................   Passed    0.66 sec
        Start 146: unique.test.py
139/176 Test #139: tw-3527.test.py .......................   Passed    2.36 sec
        Start 147: upgrade.test.py
140/176 Test #147: upgrade.test.py .......................   Passed    0.32 sec
        Start 148: urgency.test.py
141/176 Test #144: undo.test.py ..........................   Passed    0.78 sec
        Start 149: urgency_inherit.test.py
142/176 Test #143: uda_sort.test.py ......................   Passed    1.07 sec
        Start 150: uuid.test.py
143/176 Test #146: unique.test.py ........................   Passed    0.55 sec
        Start 151: verbose.test.py
144/176 Test #129: tag.test.py ...........................   Passed    4.51 sec
        Start 152: version.test.py
145/176 Test #149: urgency_inherit.test.py ...............   Passed    0.46 sec
        Start 153: wait.test.py
146/176 Test #145: unicode.test.py .......................   Passed    1.17 sec
        Start 154: hooks.on-exit.test.py
147/176 Test #152: version.test.py .......................   Passed    0.54 sec
        Start 155: tw-1637.test.sh
148/176 Test #155: tw-1637.test.sh .......................   Passed    0.17 sec
        Start 156: tw-1643.test.sh
149/176 Test #154: hooks.on-exit.test.py .................***Failed    0.60 sec
1..unk
not ok 1 - hooks.on-exit.test.py: on-exit-bad - a well-behaved, failing, on-exit hook.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       1 calls expected for on-exit-bad but found []
not ok 2 - hooks.on-exit.test.py: on-exit-good - a well-behaved, successful, on-exit hook.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'version']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        task 3.2.0 built for Linux
#        Copyright (C) 2006 - 2024 T. Babej, P. Beckingham, F. Hernandez.
#        
#        --------------------------------------------------------------------------------
#        Taskwarrior may be copied only under the terms of the MIT license, which may be
#        found in the Taskwarrior source kit.
#        
#        --------------------------------------------------------------------------------
#        Documentation for Taskwarrior can be found using 'man task', 'man taskrc', 'man
#        task-color', 'man task-sync' or at https://taskwarrior.org
#        
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_zb64jx2r/hooks/on-exit-good' Error: No such file or directory
#        TASKRC override: /build/task_zb64jx2r/test.rc
#        TASKDATA override: /build/task_zb64jx2r
#        Hook Error: Expected feedback from failing hook script: on-exit-good
#        
#        *** End STDERR ***
not ok 3 - hooks.on-exit.test.py: on-exit-good - a well-behaved, successful, on-exit hook.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'add', 'foo']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        Created task 1.
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_vb795r1g/hooks/on-exit-good' Error: No such file or directory
#        TASKRC override: /build/task_vb795r1g/test.rc
#        TASKDATA override: /build/task_vb795r1g
#        Hook Error: Expected feedback from failing hook script: on-exit-good
#        
#        *** End STDERR ***
not ok 4 - hooks.on-exit.test.py: on-exit-misbehave1 - Does not consume input.
# ERROR: CommandError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#        Command '['/build/source/build/src/task', 'version']' finished with unexpected exit code '4'.
#        
#        *** Start STDOUT ***
#        
#        task 3.2.0 built for Linux
#        Copyright (C) 2006 - 2024 T. Babej, P. Beckingham, F. Hernandez.
#        
#        --------------------------------------------------------------------------------
#        Taskwarrior may be copied only under the terms of the MIT license, which may be
#        found in the Taskwarrior source kit.
#        
#        --------------------------------------------------------------------------------
#        Documentation for Taskwarrior can be found using 'man task', 'man taskrc', 'man
#        task-color', 'man task-sync' or at https://taskwarrior.org
#        
#        
#        *** End STDOUT ***
#        
#        *** Start STDERR ***
#        Failed to execute '/build/task_j_8xvrcx/hooks/on-exit-misbehave1' Error: No such file or directory
#        TASKRC override: /build/task_j_8xvrcx/test.rc
#        TASKDATA override: /build/task_j_8xvrcx
#        Hook Error: Expected feedback from failing hook script: on-exit-misbehave1
#        
#        *** End STDERR ***
not ok 5 - hooks.on-exit.test.py: on-exit-misbehave2 - Emits unexpected JSON.
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'Hook Error: Expected 0 JSON task(s), found 1' not found in "Failed to execute '/build/task_7xi4koes/hooks/on-exit-misbehave2' Error: No such file or directory
# TASKRC override: /build/task_7xi4koes/test.rc
# TASKDATA override: /build/task_7xi4koes
# Hook Error: Expected feedback from failing hook script: on-exit-misbehave2
# "
Ran 5 tests in 0.452s

FAILED (failures=2, errors=3)

        Start 157: tw-1688.test.sh
150/176 Test #156: tw-1643.test.sh .......................   Passed    0.20 sec
        Start 158: tw-1715.test.sh
151/176 Test #158: tw-1715.test.sh .......................   Passed    0.17 sec
        Start 159: tw-1718.test.sh
152/176 Test #157: tw-1688.test.sh .......................   Passed    0.26 sec
        Start 160: tw-1804.test.sh
153/176 Test #159: tw-1718.test.sh .......................   Passed    0.13 sec
        Start 161: tw-1883.test.sh
154/176 Test #153: wait.test.py ..........................   Passed    1.13 sec
        Start 162: tw-1895.test.sh
155/176 Test #160: tw-1804.test.sh .......................   Passed    0.25 sec
        Start 163: tw-1938.test.sh
156/176 Test #163: tw-1938.test.sh .......................   Passed    0.12 sec
        Start 164: tw-2124.test.sh
157/176 Test #162: tw-1895.test.sh .......................   Passed    0.16 sec
        Start 165: tw-2189.test.sh
158/176 Test #140: uda.test.py ...........................   Passed    4.45 sec
        Start 166: tw-2257.test.sh
159/176 Test #164: tw-2124.test.sh .......................   Passed    0.14 sec
        Start 167: tw-2386.test.sh
160/176 Test #161: tw-1883.test.sh .......................   Passed    0.42 sec
        Start 168: tw-2392.test.sh
161/176 Test #151: verbose.test.py .......................   Passed    1.90 sec
        Start 169: tw-2429.test.sh
162/176 Test #166: tw-2257.test.sh .......................   Passed    0.10 sec
        Start 170: tw-2451.test.sh
163/176 Test #167: tw-2386.test.sh .......................   Passed    0.17 sec
        Start 171: tw-2514.test.sh
164/176 Test #165: tw-2189.test.sh .......................   Passed    0.32 sec
        Start 172: tw-2530.test.sh
165/176 Test #168: tw-2392.test.sh .......................   Passed    0.26 sec
        Start 173: tw-2550.test.sh
166/176 Test #170: tw-2451.test.sh .......................   Passed    0.24 sec
        Start 174: tw-2581.test.sh
167/176 Test #171: tw-2514.test.sh .......................   Passed    0.20 sec
        Start 175: tw-3102.test.sh
168/176 Test #174: tw-2581.test.sh .......................   Passed    0.11 sec
        Start 176: tw-3109.test.sh
169/176 Test #175: tw-3102.test.sh .......................   Passed    0.16 sec
170/176 Test #169: tw-2429.test.sh .......................   Passed    0.51 sec
171/176 Test #176: tw-3109.test.sh .......................   Passed    0.17 sec
172/176 Test #173: tw-2550.test.sh .......................   Passed    0.49 sec
173/176 Test #172: tw-2530.test.sh .......................   Passed    1.24 sec
174/176 Test #148: urgency.test.py .......................   Passed    3.55 sec
175/176 Test #150: uuid.test.py ..........................   Passed    3.86 sec
176/176 Test  #93: ids.test.py ...........................   Passed   20.99 sec

97% tests passed, 6 tests failed out of 176

Total Test time (real) =  31.16 sec

The following tests FAILED:
	 38 - bash_completion.test.py (Failed)
	 88 - hooks.env.test.py (Failed)
	 89 - hooks.on-add.test.py (Failed)
	 90 - hooks.on-launch.test.py (Failed)
	 91 - hooks.on-modify.test.py (Failed)
	154 - hooks.on-exit.test.py (Failed)
Errors while running CTest
make: *** [Makefile:91: test] Error 8
@djmitche
Copy link
Collaborator

The common theme seems to be

#        Failed to execute '/build/task_j_8xvrcx/hooks/some-hook' Error: No such file or directory

Those appear to be shell scripts with a /bin/sh shebang. Is /bin/sh perhaps not available in this context?

@doronbehar
Copy link
Contributor Author

OH thank you, I should have figured that out myself. Our patchShebangs function ignores non-executable files, so that's why these shebangs weren't patched. Perhaps you should make these hooks executables? It would make sense other way IMO.

Now with the hooks tests fixed, only bash_completion.test.py is failing the same way as before:

 37/176 Test  #38: bash_completion.test.py ...............***Failed    1.74 sec
1..unk
not ok 1 - bash_completion.test.py: aliases should be expanded
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'samplealias' not found in ''
not ok 2 - bash_completion.test.py: commands should be expanded
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'modify' not found in ''
ok 3 - bash_completion.test.py: no gc coming from bash completion
ok 4 - bash_completion.test.py: project: should be expanded and dependent on abbreviation minimum
not ok 5 - bash_completion.test.py: project: expansion expanded after rc.abbreviation.minimum
# FAIL: AssertionError on file /nix/store/zv1kaq7f1q20x62kbjv6pfjygw5jmwl6-python3-3.12.7/lib/python3.12/unittest/case.py line 58 in testPartExecutor: 'yield':
#       'todd' not found in ''
ok 6 - bash_completion.test.py: project: fails if shorter than rc.abbreviation.minimum
ok 7 - bash_completion.test.py: project: expansion fails on non matching attribute
Ran 7 tests in 1.588s

FAILED (failures=3)

@djmitche
Copy link
Collaborator

Hm, I don't know much about completion -- but that's running scripts/bash/task.sh, so maybe there's something that needs to be set with that file?

@doronbehar doronbehar changed the title Some Python tests fail bash_completion.test.py fails on NixOS Dec 17, 2024
@doronbehar
Copy link
Contributor Author

I too have no idea how to debug that.

@djmitche
Copy link
Collaborator

Does making that file executable help?

@doronbehar
Copy link
Contributor Author

It didn't help. I suspect it is because that bash completion is not installed when bash-completion.test.py is running. We do install it eventually, but even if we'd install it, it wouldn't be trivial to make bash aware of it. Our environment has a very minimal and strict Bash and I don't think it is that important to make a big effort for this test.

Perhaps it'd be nice if bash_completion.test.py would have detected in the first place whether the completion is installed or not, and give a better error message. I'm guessing there are Bash functions that can detect that. If you don't want to make this effort it is OK as well. I won't mind too much if this issue will be closed now that I'm pretty sure what is the cause of this.

@djmitche
Copy link
Collaborator

My read of the tests is that they don't require the completion to actually be "installed", as they are calling the completion script directly. But i could be mistaken about that.

I think a patch to disable this particular test in the Nix build is probably the best course.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

2 participants