Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
T
Tidal
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PLN
  • Tidal
  • Repository

Switch branch/tag
  • Tidal
  • tools
  • tests
  • test_setlist.py
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    fix(setlist): a soundcheck is not a track, and the suite can run again · e8f7066a
    Two bugs that were hiding each other, which is why both survived a month.
    
    THE SUITE RAN ZERO TESTS. test_setlist.py was a plain script ending in a bare
    module-level sys.exit(), and pytest raises that during COLLECTION — so
    'pytest tools/tests/' aborted the whole directory with an INTERNALERROR and ran
    nothing, while 273 tests passed when invoked file-by-file. Every test in this
    repo was invisible to the obvious command. Guarded the exit under __main__ (the
    script still works run directly) and added one assertion so pytest actually sees
    the checks. Whole suite in one command now: 274 passed, 2 skipped, 0 failed.
    
    AND THE THING IT WAS HIDING: test_setlist had been failing all along, on a check
    whose name says exactly what is wrong — 'a deliberation note is not a track (the
    quand_on_decolle phantom)'. OPAL 2026's backlog section opens with
    
        ## SOUNDCHECK
        -- Quand on decolle
    
    and entries() takes every list item under the gig heading, so every one of the
    tools reading this setlist believed the set had 16 tracks opening on Quand on
    décolle. The recorded set has 15 and opens on Ceci n'est pas Une Bombe
    (segments_v3/v4 track 1). The parser now yields 15, in the right order.
    
    The fix is deliberately NOT the section whitelist entries() refuses to build —
    that one tried to enumerate which of PLN's prose headings are part of the set and
    died on '## Livecoding Techno DNB Nu-jazz'. This is the inverse and far narrower:
    naming the one phase that is definitionally not a performance. Three patterns,
    and skips print to stderr, because a dropped track and a skipped soundcheck must
    never look alike.
    
    Fixed the parser, never backlog.md — the backlog is PLN's own file and it was
    right. A soundcheck IS in his set list; it just isn't in his set.
    
    Verified by breaking it: neutered _NOT_THE_SET_RE, watched
    test_backlog_setlist_checks_all_pass fail naming the quand_on_decolle phantom,
    restored, 274 green.
    
        the first track was never the first track.
        sixteen tools agreed with each other
        and none of them agreed with the recording.
    PLN (Algolia) authored Sep 05, 2026
    e8f7066a
test_setlist.py 8.12 KB
EditWeb IDE
×

Replace test_setlist.py

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.