songs2slides

A tool that automatically finds song lyrics and creates lyric slideshows
git clone https://git.ashermorgan.net/songs2slides/
Log | Files | Refs | README

generate_screenshots.py (1867B)


      1 # Run with: pytest tests/generate_screenshots.py
      2 # (not run by default due to lack of test_* filename prefix)
      3 
      4 from playwright.sync_api import Page
      5 
      6 def test_generate_screenshots(page: Page):
      7     # Set viewport size
      8     page.set_viewport_size({'width': 800, 'height': 380})
      9 
     10     # Start on homepage
     11     page.goto('/')
     12 
     13     # Click 'Create a Slideshow'
     14     page.get_by_role('link', name='Create a Slideshow').click()
     15 
     16     # Fill in song information
     17     page.get_by_placeholder('Song title').last.fill('Song 1')
     18     page.get_by_placeholder('Song artist').last.fill('Artist A')
     19     page.get_by_role('button', name='Add Song').click()
     20     page.get_by_placeholder('Song title').last.fill('Song 4')
     21     page.get_by_placeholder('Song artist').last.fill('Artist C')
     22     page.get_by_placeholder('Song artist').last.blur()
     23 
     24     # Take step 1 screenshot
     25     page.screenshot(path='screenshots/step-1.png', full_page=True)
     26 
     27     # Click Next
     28     page.get_by_role('button', name='Next').click()
     29 
     30     # Uncollapse Song 1
     31     page.get_by_text('Song 1 (Artist A)').click()
     32 
     33     # Shrink textareas (for a more compact screenshot)
     34     page.add_style_tag(content='textarea { height: 65px } .missing textarea { height: 40px }')
     35 
     36     # Take step 2 screenshot
     37     page.screenshot(path='screenshots/step-2.png', full_page=True)
     38 
     39     # Click Next
     40     page.get_by_role('button', name='Next').click()
     41 
     42     # Fill in slideshow settings
     43     page.get_by_role('checkbox', name='Include a title slide before each song').uncheck()
     44 
     45     # Take step 3 screenshot
     46     page.screenshot(path='screenshots/step-3.png', full_page=True)
     47 
     48     # Click create
     49     page.get_by_role('button', name='Create').click()
     50 
     51     # Hide header (for better screenshot)
     52     page.add_style_tag(content='header { display: none }')
     53 
     54     # Take slides screenshot
     55     page.screenshot(path='screenshots/slides.png', full_page=True)