Re: [Pyobjc-dev] doctest and PyObjC
Brought to you by:
ronaldoussoren
|
From: Just v. R. <jus...@gm...> - 2018-02-04 11:51:52
|
That’s fantastic news, thank you. I’ll keep an eye on the release.
Just
> On 04 Feb 2018, at 12:29, Ronald Oussoren <ron...@ma...> wrote:
>
> I’ve just pushed a fix to the repository. I’m hoping to push out a new release next weekend.
>
> There is no workaround for the issue other than patching PyObjC: In Lib/objc/_convenience.py remove the @register decorator from makeBundleForClass. I had hoped that there’d be a cleaner workaround, but that workaround caused a hard crash (also fixed in the repository).
>
> Ronald
>
>
>
>> On 28 Jan 2018, at 19:28, Ronald Oussoren <ron...@ma...> wrote:
>>
>>
>>
>>> On 6 Jan 2018, at 20:39, Just van Rossum <jus...@gm...> wrote:
>>>
>>> Hello,
>>>
>>> I’m having trouble with integrating PyObjC and doctest. Whenever a module contains an NSObject subclass, the doctest test discovery code fails like so:
>>>
>>>
>>> Traceback (most recent call last):
>>> File "Lib/typemachine/ui/appDelegate.py", line 54, in <module>
>>> doctest.testmod()
>>> File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/doctest.py", line 1950, in testmod
>>> for test in finder.find(m, name, globs=globs, extraglobs=extraglobs):
>>> File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/doctest.py", line 933, in find
>>> self._find(tests, obj, name, module, source_lines, globs, {})
>>> File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/doctest.py", line 996, in _find
>>> globs, seen)
>>> File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/doctest.py", line 1027, in _find
>>> self._from_module(module, val)):
>>> File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/doctest.py", line 954, in _from_module
>>> obj_mod = object.__objclass__.__module__
>>> AttributeError: 'NoneType' object has no attribute ‘__module__'
>>>
>>>
>>> Simplest way to reproduce:
>>>
>>> =========
>>> from Foundation import NSObject
>>>
>>> class Foo(NSObject):
>>> pass
>>>
>>> import doctest
>>> doctest.testmod()
>>> =========
>>>
>>> I can’t judge whether this is a bug in doctest or in PyObjC.
>>>
>>> Is there a workaround?
>>>
>>> My problem is not so much that I can’t use doctest in NSObject subclasses, but rather that test discovery fails in general in the vicinity of PyObjC code. For example, I can’t use pytest’s test discovery at all: it simply fails any module that contains an NSObject subclass.
>>>
>>> Thanks for any insights,
>>
>> This appears to be a bug. I don’t have a workaround yet, but am investigating.
>>
>> Ronald
>>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Pyobjc-dev mailing list
>> Pyo...@li...
>> https://lists.sourceforge.net/lists/listinfo/pyobjc-dev
>
|