Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

проблема с ConfigParser и pytest в python, данные не читаются из cfg файла


(Irish) #1

Есть тест, который использует библиотеку для парсинга конфиг файла

from lib import functions
import unittest                 
class CheckoutPromoTest(unittest.TestCase):
    def setUp(self):        
        self.driver = functions.driver_setup(15)
 
    def tearDown(self):
        self.driver.quit()     
      
    def test_CheckoutPromoCode(self):
        self.driver.get(functions.base_url)
        self.driver.find_element_by_link_text(functions.base_catalog).click()

if __name__ == "__main__":    
    unittest.main()

есть библиотека, которая парсит мой конфиг файл

import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('../app.cfg') # => перекидывала уже в пакет библиотеки lib - не помогает

base_site = config.get('sites', 'base_site') #=>вот тут получается не может взять значение base_site

и есть сам конфиг файл app.cfg

[sites]
base_site = testsite

использую pytest-xdist
py.test -n 2

test_checkout.py:9: in <module>
    from lib import functions
..\..\..\testsite\lib\functions.py:8: in <module>
    base_site = config.get('sites', 'base_site')
C:\Python27\Lib\ConfigParser.py:330: in get
    raise NoSectionError(section)
E   NoSectionError: No section: 'sites'

если не использовать pytest-xdist - то все отлично - тест проходит, ConfigParser нормально отрабатывает. но мне надо распаралелить и хотелось бы с наименьшими переделками кода. очень надеялась на pytest-xdist .
очень буду признательна за помощь


(Mykhailo Poliarush) #2

Что могу сказать, что скорее всего у вас проблемы с путями.
Вот я попробовал локально и у меня все отлично работает.
Все файлы находятся на одном уровне.


(Irish) #3

спасибо, поняла где проблема и как решать