Esempio n. 1
0
def test_folder_parent(pl, tmp_path):
    parent = Playlist(4, 'ParentPL')
    pl.parent = 4
    m3u.write_all({pl.id: pl, parent.id: parent}, tmp_path, folders=True)
    p = tmp_path / parent.name
    assert p.exists()
    assert p.is_dir()
    assert list(p.iterdir())[0].name == 'TEST PLAYLIST.m3u'
Esempio n. 2
0
def test_all_overwrite(pl, tmp_path, capfd):
    pl2 = Playlist(2, 'pl2', tracks=pl.tracks[:])
    prev = tmp_path / 'pl2.m3u'
    prev.write_text('pls no delete')
    pls = {p.id: p for p in (pl, pl2)}
    m3u.write_all(pls, tmp_path)
    assert capfd.readouterr().err == f"'{prev}' already exists, skipping.\n"
    assert prev.read_text() == 'pls no delete'
    m3u.write_all(pls, tmp_path, overwrite=True)
    assert prev.read_text() != 'pls no delete'
Esempio n. 3
0
def test_write_all(pl, tmp_path):
    pl2 = Playlist(2, 'pl2', tracks=pl.tracks[:])
    pls = {p.id: p for p in (pl, pl2)}
    m3u.write_all(pls, tmp_path)
    m1 = tmp_path / 'TEST PLAYLIST.m3u'
    m2 = tmp_path / 'pl2.m3u'
    assert m2.exists()
    assert m1.exists()
    expected = '\n'.join(str(t.path) for t in pl.tracks)
    assert m1.read_text().strip() == expected
    assert m2.read_text().strip() == expected
Esempio n. 4
0
def test_all_replace(pl, tmp_path):
    pl2 = Playlist(2, 'pl2', tracks=pl.tracks[:])
    replacement = (PureWindowsPath(':/Users/testuser/Desktop/songs'),
                   Path('/pool/Media/Music'))
    expected = ("/pool/Media/Music/08 Moonscape.mp3\n"
                "/pool/Media/Music/08 Mountains.mp3\n"
                "/pool/Media/Music/09 Outlands.mp3\n"
                "/pool/Media/Music/10 Crush.mp3\n")
    if os.path.sep == '\\':
        expected = expected.replace('/', '\\')
    pls = {p.id: p for p in (pl, pl2)}
    m3u.write_all(pls, tmp_path, replace=replacement)
    for p in (pl, pl2):
        path = tmp_path / f'{p.name}.m3u'
        assert path.read_text() == expected
Esempio n. 5
0
def test_all_skip_empty(pl, tmp_path, capfd):
    pl.tracks = []
    m3u.write_all({pl.id: pl}, tmp_path, overwrite=True)
    out = capfd.readouterr().err
    assert out == f'Skipping empty playlist "{pl.name}"\n'
    assert len(list(tmp_path.iterdir())) == 0
Esempio n. 6
0
def test_pre_pend_parent(pl, tmp_path):
    parent = Playlist(4, 'ParentPL')
    pl.parent = 4
    m3u.write_all({pl.id: pl, parent.id: parent}, tmp_path, prepend_parent=True)
    assert list(tmp_path.iterdir())[0].name == 'ParentPL - TEST PLAYLIST.m3u'
Esempio n. 7
0
def test_sanaitize_filename(pl, tmp_path):
    pl.name = "Bad: File\\Name?"
    m3u.write_all({pl.id: pl}, tmp_path)
    fname = list(tmp_path.iterdir())[0]
    assert fname.name == 'Bad_ File_Name_.m3u'