AbdealiJK added a comment.

  Yeah, You're right. It should not even be collected.
  
  I also made this simpler testcase to test this out:
  
    import unittest
    
    def test_abc():
        pass
    
    def test_abc_not_run():
        pass
    
    test_abc_not_run.__test__ = False
    
    class ClassTest(unittest.TestCase):
        def test_class_abc(self):
            pass
    
    class NotRunClassTest(unittest.TestCase):
        __test__ = False
    
        def test_class_abc_not_run(self):
            pass
    
    
    class ClassMeta(type):
    
        def __new__(cls, name, bases, dct):
            for name in ['abc', 'abc_not_run']:
                test_name = 'test_metaclass_' + name
                dct[test_name] = lambda self: None
                dct[test_name].__name__ = test_name
    
            dct['test_metaclass_abc_not_run'].__test__ = False
            return super(ClassMeta, cls).__new__(cls, name, bases, dct)
    
    class ClassMetaTest(unittest.TestCase):
        __metaclass__ = ClassMeta
  
  And I used the conftest:
  
    def pytest_runtest_setup(item):
        print
        print '    __test__ for', item, "is", getattr(item._obj, '__test__', 
None)
  
  Results got:
  
    $ py.test --capture=no -vvv
    platform linux2 -- Python 2.7.6, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- 
/home/ajk/Documents/wiki/venv/bin/python
    #REMOVED CONTENT#
    collected 4 items 
    
    test_abc.py::ClassMetaTest::test_metaclass_abc 
        __test__ for <TestCaseFunction 'test_metaclass_abc'> is None
    PASSED
    test_abc.py::ClassMetaTest::test_metaclass_abc_not_run 
        __test__ for <TestCaseFunction 'test_metaclass_abc_not_run'> is False
    PASSED
    test_abc.py::test_abc 
        __test__ for <Function 'test_abc'> is None
    PASSED
    test_abc.py::ClassTest::test_class_abc 
        __test__ for <TestCaseFunction 'test_class_abc'> is None
    PASSED
    
    ===================================== 4 passed in 2.37 seconds 
=====================================

TASK DETAIL
  https://phabricator.wikimedia.org/T135594

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: jayvdb, AbdealiJK
Cc: Aklapper, Zppix, pywikibot-bugs-list, AbdealiJK, jayvdb, Mdupont



_______________________________________________
pywikibot-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-bugs

Reply via email to