Как использовать skipif с условием, если метод @property возвращает определенный вывод? - PullRequest
0 голосов
/ 04 ноября 2019

Мне нужно проверить, существуют ли файлы xml с форматом .txt в текущем каталоге или нет. Вот мой код:

@property
    def get_random_xml_file(self):
        files = get_xml_files(self)
        if files != 'No data':
            random_file = random.choice(files)
            splitext = os.path.splitext(random_file)[0]
            return splitext
        else:
            return ''

Здесь get_xml_files дает список файлов XML, если существует, в противном случае список имеет ''

@pytest.mark.skipif(get_random_xml_file == '', reason="Works only if there's a plan.xml file")
def test_text_created(self):
    assert path.exists(self.get_random_xml_file + ".txt")

То же самое выше Проходит, когда у файла xml есть файл .txt:

check.py::checkXML::test_text_created PASSED 

и происходит сбой при отсутствии файлов XML, но это не пропускается:

check.py::checkXML::test_text_created FAILED                                                                                                      

=============================================================================================================== FAILURES ================================================================================================================
___________________________________________________________________________________________________ checkXML.test_text_created ____________________________________________________________________________________________________

self = <check.TestplanalyseF object at 0x7ffff282e1d0>

    @pytest.mark.skipif(get_random_xml_file == '', reason="Works only if there's a plan.xml file")
    def test_text_created(self):
>       assert path.exists(self.get_random_xml_file + ".txt")
E       AssertionError: assert False
E        +  where False = <function exists at 0x7ffff7ee0a60>(('' + '.txt'))
E        +    where <function exists at 0x7ffff7ee0a60> = path.exists
E        +    and   '' = <check.checkXML object at 0x7ffff282e1d0>.get_random_xml_file

check.py:53: AssertionError

Пожалуйста, помогите, как пропустить тест, когда нет XML-файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...