Title: `enum` doctests are silently skipped when run with libregrtest · Issue #111181 · python/cpython · GitHub
Open Graph Title: `enum` doctests are silently skipped when run with libregrtest · Issue #111181 · python/cpython
X Title: `enum` doctests are silently skipped when run with libregrtest · Issue #111181 · python/cpython
Description: Bug report test_enum has these lines: cpython/Lib/test/test_enum.py Lines 27 to 39 in 663cf51 def load_tests(loader, tests, ignore): tests.addTests(doctest.DocTestSuite(enum)) if os.path.exists('Doc/library/enum.rst'): tests.addTests(doc...
Open Graph Description: Bug report test_enum has these lines: cpython/Lib/test/test_enum.py Lines 27 to 39 in 663cf51 def load_tests(loader, tests, ignore): tests.addTests(doctest.DocTestSuite(enum)) if os.path.exists('Do...
X Description: Bug report test_enum has these lines: cpython/Lib/test/test_enum.py Lines 27 to 39 in 663cf51 def load_tests(loader, tests, ignore): tests.addTests(doctest.DocTestSuite(enum)) if os.path.exists(...
Opengraph URL: https://github.com/python/cpython/issues/111181
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"`enum` doctests are silently skipped when run with libregrtest","articleBody":"# Bug report\n\n`test_enum` has these lines: https://github.com/python/cpython/blob/663cf513b0e973ab7aa4a8609d6616ad2c283f22/Lib/test/test_enum.py#L27-L39\n\nThey are problematic, because they are not executed when run as `./python.exe -m test test_enum`.\nOnly when run with `./python.exe Lib/test/test_enum.py`\n\nDifference (on `main` branch):\n\n```\n» ./python.exe -m test test_enum\nUsing random seed: 1578294160\n0:00:00 load avg: 1.98 Run 1 test sequentially\n0:00:00 load avg: 1.98 [1/1] test_enum\n\n== Tests result: SUCCESS ==\n\n1 test OK.\n\nTotal duration: 856 ms\nTotal tests: run=1,060 skipped=4\nTotal test files: run=1/1\nResult: SUCCESS\n```\n\nand:\n\n```\n» ./python.exe Lib/test/test_enum.py \n...............................................................................................................................................................................................................................s.s..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................s..........................................s........................................................................................................................................FF\n======================================================================\nFAIL: /Users/sobolev/Desktop/cpython/Lib/test/../../Doc/library/enum.rst\nDoctest: enum.rst\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/Users/sobolev/Desktop/cpython/Lib/doctest.py\", line 2263, in runTest\n raise self.failureException(self.format_failure(new.getvalue()))\nAssertionError: Failed doctest test for enum.rst\n File \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/library/enum.rst\", line 0\n\n----------------------------------------------------------------------\nFile \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/library/enum.rst\", line 301, in enum.rst\nFailed example:\n dir(Weekday.SATURDAY)\nExpected:\n ['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']\nGot:\n ['FRIDAY', 'MONDAY', 'SATURDAY', 'SUNDAY', 'THURSDAY', 'TUESDAY', 'WEDNESDAY', '__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value']\n\n\n======================================================================\nFAIL: /Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\nDoctest: enum.rst\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/Users/sobolev/Desktop/cpython/Lib/doctest.py\", line 2263, in runTest\n raise self.failureException(self.format_failure(new.getvalue()))\nAssertionError: Failed doctest test for enum.rst\n File \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\", line 0\n\n----------------------------------------------------------------------\nFile \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\", line 486, in enum.rst\nFailed example:\n @dataclass\n class CreatureDataMixin:\n size: str\n legs: int\n tail: bool = field(repr=False, default=True)\nException raised:\n Traceback (most recent call last):\n File \"/Users/sobolev/Desktop/cpython/Lib/doctest.py\", line 1374, in __run\n exec(compile(example.source, filename, \"single\",\n File \"\u003cdoctest enum.rst[64]\u003e\", line 1, in \u003cmodule\u003e\n @dataclass\n ^^^^^^^^^\n NameError: name 'dataclass' is not defined\n----------------------------------------------------------------------\nFile \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\", line 492, in enum.rst\nFailed example:\n class Creature(CreatureDataMixin, Enum):\n BEETLE = 'small', 6\n DOG = 'medium', 4\nException raised:\n Traceback (most recent call last):\n File \"/Users/sobolev/Desktop/cpython/Lib/doctest.py\", line 1374, in __run\n exec(compile(example.source, filename, \"single\",\n File \"\u003cdoctest enum.rst[65]\u003e\", line 1, in \u003cmodule\u003e\n class Creature(CreatureDataMixin, Enum):\n ^^^^^^^^^^^^^^^^^\n NameError: name 'CreatureDataMixin' is not defined\n----------------------------------------------------------------------\nFile \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\", line 496, in enum.rst\nFailed example:\n Creature.DOG\nException raised:\n Traceback (most recent call last):\n File \"/Users/sobolev/Desktop/cpython/Lib/doctest.py\", line 1374, in __run\n exec(compile(example.source, filename, \"single\",\n File \"\u003cdoctest enum.rst[66]\u003e\", line 1, in \u003cmodule\u003e\n Creature.DOG\n ^^^^^^^^\n NameError: name 'Creature' is not defined\n----------------------------------------------------------------------\nFile \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\", line 530, in enum.rst\nFailed example:\n class MyEnum(Enum):\n __reduce_ex__ = enum.pickle_by_enum_name\nException raised:\n Traceback (most recent call last):\n File \"/Users/sobolev/Desktop/cpython/Lib/doctest.py\", line 1374, in __run\n exec(compile(example.source, filename, \"single\",\n File \"\u003cdoctest enum.rst[70]\u003e\", line 1, in \u003cmodule\u003e\n class MyEnum(Enum):\n File \"\u003cdoctest enum.rst[70]\u003e\", line 2, in MyEnum\n __reduce_ex__ = enum.pickle_by_enum_name\n ^^^^\n NameError: name 'enum' is not defined. Did you mean: 'Enum'? Or did you forget to import 'enum'?\n----------------------------------------------------------------------\nFile \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\", line 773, in enum.rst\nFailed example:\n Perm.X | 8\nExpected:\n 9\nGot:\n \u003cPerm.X|8: 9\u003e\n----------------------------------------------------------------------\nFile \"/Users/sobolev/Desktop/cpython/Lib/test/../../Doc/howto/enum.rst\", line 1431, in enum.rst\nFailed example:\n class Color(DuplicateFreeEnum):\n RED = 1\n GREEN = 2\n BLUE = 3\n GRENE = 2\nExpected:\n Traceback (most recent call last):\n ...\n ValueError: aliases not allowed in DuplicateFreeEnum: 'GRENE' --\u003e 'GREEN'\nGot:\n Traceback (most recent call last):\n File \"/Users/sobolev/Desktop/cpython/Lib/doctest.py\", line 1374, in __run\n exec(compile(example.source, filename, \"single\",\n File \"\u003cdoctest enum.rst[162]\u003e\", line 1, in \u003cmodule\u003e\n class Color(DuplicateFreeEnum):\n File \"/Users/sobolev/Desktop/cpython/Lib/enum.py\", line 570, in __new__\n enum_class = super().__new__(metacls, cls, bases, classdict, **kwds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/sobolev/Desktop/cpython/Lib/enum.py\", line 278, in __set_name__\n enum_member.__init__(*args)\n File \"\u003cdoctest enum.rst[161]\u003e\", line 7, in __init__\n raise ValueError(\n ValueError: aliases not allowed in DuplicateFreeEnum: 'GRENE' --\u003e 'GREEN'\n Error calling __set_name__ on '_proto_member' instance 'GRENE' in 'Color'\n\n\n----------------------------------------------------------------------\nRan 1062 tests in 0.876s\n\nFAILED (failures=2, skipped=4)\n```\n\nWhy? Because of https://github.com/python/cpython/blob/663cf513b0e973ab7aa4a8609d6616ad2c283f22/Lib/test/test_enum.py#L29 checks. This file does not exist when executed via `-m test`, here what `os.getcwd()` shows for `-m test`: `.../cpython/build/test_python_worker_45291æ`\n\nBut, with `./python.exe Lib/test/test_enum.py` it is: `/Users/sobolev/Desktop/cpython`\n\nI've made a PR https://github.com/python/cpython/pull/111180 with fixes that will satisfy doctest, but I am not sure they are correct.\n\nCC @ethanfurman \n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-111180\n* gh-111518\n* gh-111617\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/sobolevn","@type":"Person","name":"sobolevn"},"datePublished":"2023-10-22T14:22:17.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/111181/cpython/issues/111181"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:30e10609-e363-aa40-c26b-bb950da297d9 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 921E:2B1AB1:31AA73B:4150649:696B8B4D |
| html-safe-nonce | f8e71080b918d7eb57047bccd34b64213f2ca2abdeea67008e4188e80133c786 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MjFFOjJCMUFCMTozMUFBNzNCOjQxNTA2NDk6Njk2QjhCNEQiLCJ2aXNpdG9yX2lkIjoiMTE4NDE0MzAxOTUxNDQ5Nzg2OSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 8b0ca638313c25433ede534354fcae4b431459f11e6ba26ebff8bd5b42d74313 |
| hovercard-subject-tag | issue:1955921261 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/111181/issue_layout |
| twitter:image | https://opengraph.githubassets.com/a708abf190d7b15e899026e99860afb31ac04fda60a2ccf34f68ca24b5bc641d/python/cpython/issues/111181 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/a708abf190d7b15e899026e99860afb31ac04fda60a2ccf34f68ca24b5bc641d/python/cpython/issues/111181 |
| og:image:alt | Bug report test_enum has these lines: cpython/Lib/test/test_enum.py Lines 27 to 39 in 663cf51 def load_tests(loader, tests, ignore): tests.addTests(doctest.DocTestSuite(enum)) if os.path.exists('Do... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | sobolevn |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 82560a55c6b2054555076f46e683151ee28a19bc |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width