
    +5i                     P   d Z ddlZddlZddlmZmZmZmZ dej                  d<    ej                  d      d        Z
 ej                  d      d	        Z ej                  d
      d        Z ej                  d
      d        Z ej                  d
      d        Z ej                  d
      d        ZdZdZdZej                  d        Zej                  d        Zej                  d        Zej                  d        Zd Z ej0                  dd      d        Zy)zp
Pytest configuration for E2E browser tests.
Handles Playwright setup with LD_LIBRARY_PATH workaround for WSL2.
    N)sync_playwrightBrowserBrowserContextPagez/mnt/e/genesis-system/.venvs/playwright/lib/python3.12/site-packages/playwright/driver/package/.local-browsers/chromium-1148/chrome-linux/LD_LIBRARY_PATHsession)scopec               #   R   K   t               5 } |  ddd       y# 1 sw Y   yxY ww)zLaunch Playwright session.N)r   )ps    +/mnt/e/genesis-system/tests/e2e/conftest.py
playwrightr      s)      
	 a  s   '	'$'c              #   r   K   | j                   j                  dg d      }| |j                          yw)z!Launch headless Chromium browser.T)z--no-sandboxz--disable-setuid-sandboxz--disable-dev-shm-usagez--disable-gpu)headlessargsN)chromiumlaunchclose)r   browsers     r   r   r      s;      !!((
 ) G MMMOs   57functionc              #   `   K   | j                  dddd      }| |j                          yw)z5Create new browser context for each test (isolation).i  i8  widthheightz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36)viewport
user_agentN)new_contextr   )r   contexts     r   r   r   %   s8      !!40Q " G MMMOs   ,.c              #   T   K   | j                         }| |j                          yw)zCreate new page for each test.N)new_pager   )r   pages     r   r    r    0   s$      D
JJJLs   &(c              #      K   | j                  ddddddd      }|j                         }| |j                          |j                          yw)	zCreate mobile viewport page.iw  i  r   zKMozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15   Tr   r   device_scale_factor	is_mobile	has_touchNr   r   r   r   r   r    s      r   mobile_pager)   8   sX      !!#.` " G D
JJJLMMO   AAc              #      K   | j                  ddddddd      }|j                         }| |j                          |j                          yw)	zCreate tablet viewport page.i   i   r   zBMozilla/5.0 (iPad; CPU OS 15_0 like Mac OS X) AppleWebKit/605.1.15r"   Tr#   Nr'   r(   s      r   tablet_pager,   H   sX      !!$/W " G D
JJJLMMOr*   zhttp://localhost:8000zhttp://localhost:8888zhttp://localhost:8889c                      t         S )zAPI base URL.)API_BASE_URL     r   api_urlr1   ^   s
     r0   c                      t         S )zWidget base URL.)WIDGET_BASE_URLr/   r0   r   
widget_urlr4   d   s
     r0   c                      t         S )zDashboard base URL.)DASHBOARD_BASE_URLr/   r0   r   dashboard_urlr7   j   s
     r0   c              #   2  K   d | j                   j                  j                  rod| j                   j                   d}t	        j
                  t        j                  j                  |      d       |j                  |       t        d|        yyw)z Take screenshot on test failure.Nz,/mnt/e/genesis-system/tests/e2e/screenshots/z.pngTexist_ok)pathzScreenshot saved: )
noderep_callfailednameosmakedirsr;   dirname
screenshotprint)requestr    screenshot_paths      r   screenshot_on_failurerG   q   sw      
||##HIZIZH[[_`
BGGOOO4tD_-"?"345	 $s   BBc                 2    t        j                  dd       y)zCreate screenshots directory.z+/mnt/e/genesis-system/tests/e2e/screenshotsTr9   N)r@   rA   )configs    r   pytest_configurerJ   |   s    KK=Mr0   T)tryfirsthookwrapperc              #   h   K   d}|j                         }t        | d|j                   |       yw)z)Store test result for screenshot fixture.Nrep_)
get_resultsetattrwhen)itemcalloutcomereps       r   pytest_runtest_makereportrV      s2      G



CDD
#S)s   02)__doc__pytestr@   playwright.sync_apir   r   r   r   environfixturer   r   r   r    r)   r,   r.   r3   r6   r1   r4   r7   rG   rJ   hookimplrV   r/   r0   r   <module>r]      s}    	 N N !m

  i  ! i  ! j! " j! " j! " j! "  '),   
  
   6 6N
 $D1* 2*r0   