#36479: Failing test for black formatter missing install simulation
-----------------------------------------+--------------------------
               Reporter:  Roelzkie       |          Owner:  Roelzkie
                   Type:  Bug            |         Status:  assigned
              Component:  Uncategorized  |        Version:  dev
               Severity:  Normal         |       Keywords:
           Triage Stage:  Unreviewed     |      Has patch:  0
    Needs documentation:  0              |    Needs tests:  0
Patch needs improvement:  0              |  Easy pickings:  1
                  UI/UX:  0              |
-----------------------------------------+--------------------------
 The test on
 
`test.user_commands.tests.UtilsTests.test_run_formatters_handles_oserror_for_black_path`
 attempts to assert a
 [https://github.com/django/django/blob/main/tests/user_commands/tests.py#L569
 `FileNotFoundError`] when simulating a missing black formatter
 installation.

 {{{
 ./runtests.py
 
user_commands.tests.UtilsTests.test_run_formatters_handles_oserror_for_black_path
 }}}


 However, it fails on the `Darwin` platform, at least on MacOS v14.7.2
 (Sonoma) M1 machine. I tested on a Linux platform, and the test passed.

 The root issue is due to the `subprocess.run` command, which yields
 different `OSError` results on different OSes when the test reaches the
 
[https://github.com/django/django/blob/68a45d9a8078db642f0aca7ddab33af6df7ebeb3/django/core/management/utils.py#L175-L177
 `subprocess.run(["nonexistent", "--fast", "--"])`]

 For Darwin (at least on MacOS v14.7.2 - M1), it yields a
 `NotADirectoryError` / `OSError(20, "Not a directory")` which fails the
 test.
 For Linux, it yields a `FileNotFoundError` / `OSError(2, "File not
 found")` which passes the test.

 Ideally this test should be able to handle it regardless of the machine
 platform.

 See failed test full stacktrace: https://dpaste.org/pY48h
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36479>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/01070197a8183130-817efbbb-34e1-4b5f-b262-d3e731dcb7b6-000000%40eu-central-1.amazonses.com.

Reply via email to