Ejemplo n.º 1
0
def test_moves_track_of_album():
    chevere = build.track(track_title="Chevere!")
    salsa_coltrane = build.track(track_title="Salsa Coltrane")
    honeycomb = build.album(tracks=[salsa_coltrane, chevere])

    director.move_track_of(honeycomb)(0, 1)
    assert_that(honeycomb.tracks, contains(chevere, salsa_coltrane), "reordered tracks")
Ejemplo n.º 2
0
def test_displays_track_menu_item_when_loading_an_existing_project(driver):
    window_ = show_main_window()
    project = build.album(tracks=[build.track(track_title="Chevere!"), build.track(track_title="Zumbar")])
    window_.display_project_screen(project)

    driver.shows_track_menu_item(title="Chevere!", track_number=1)
    driver.shows_track_menu_item(title="Zumbar", track_number=2)
Ejemplo n.º 3
0
def test_updates_tracks_main_artist_when_album_is_not_a_compilation():
    album = build.album(tracks=[build.track(), build.track(), build.track()])
    director.update_album_from(album)(lead_performer="Album Artist")

    for track in album.tracks:
        assert_that(track.lead_performer, equal_to("Album Artist"),
                    "track artist")
Ejemplo n.º 4
0
def test_moves_track_of_album():
    chevere = build.track(track_title="Chevere!")
    salsa_coltrane = build.track(track_title="Salsa Coltrane")
    honeycomb = build.album(tracks=[salsa_coltrane, chevere])

    director.move_track_of(honeycomb)(0, 1)
    assert_that(honeycomb.tracks, contains(chevere, salsa_coltrane),
                "reordered tracks")
Ejemplo n.º 5
0
def test_displays_track_menu_item_when_loading_an_existing_project(driver):
    window_ = show_main_window()
    project = build.album(tracks=[
        build.track(track_title="Chevere!"),
        build.track(track_title="Zumbar")
    ])
    window_.display_project_screen(project)

    driver.shows_track_menu_item(title="Chevere!", track_number=1)
    driver.shows_track_menu_item(title="Zumbar", track_number=2)
Ejemplo n.º 6
0
def test_navigates_to_track_page_when_menu_item_is_clicked(driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)
    project.add_track(build.track(track_title="Chevere!"))
    project.add_track(build.track(track_title="Zumbar"))
    project.add_track(build.track(track_title="Salsa Coltrane"))

    driver.navigate_to_track_page(title="Salsa Coltrane", track_number=3)
    project_screen(driver).is_showing_track_edition_page(3)
Ejemplo n.º 7
0
def test_navigates_to_track_page_when_menu_item_is_clicked(driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)
    project.add_track(build.track(track_title="Chevere!"))
    project.add_track(build.track(track_title="Zumbar"))
    project.add_track(build.track(track_title="Salsa Coltrane"))

    driver.navigate_to_track_page(title="Salsa Coltrane", track_number=3)
    project_screen(driver).is_showing_track_edition_page(3)
Ejemplo n.º 8
0
def test_displays_album_summary_in_banner(driver):
    track = make_track()
    album = make_album(release_name="Album Title", lead_performer="Artist", label_name="Record Label",
                       tracks=[build.track(), track, build.track()])

    _ = show_page(album, track)

    driver.shows_album_title("Album Title")
    driver.shows_album_lead_performer("Artist")
    driver.shows_track_number("2")
Ejemplo n.º 9
0
def test_updates_track_menu_item_when_tracks_change_order(driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)
    project.add_track(build.track(track_title="Chevere!"))
    project.add_track(build.track(track_title="Zumbar"))

    project.move_track(1, 0)

    driver.shows_track_menu_item(title="Zumbar", track_number=1)
    driver.shows_track_menu_item(title="Chevere!", track_number=2)
Ejemplo n.º 10
0
def test_updates_track_menu_item_when_tracks_change_order(driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)
    project.add_track(build.track(track_title="Chevere!"))
    project.add_track(build.track(track_title="Zumbar"))

    project.move_track(1, 0)

    driver.shows_track_menu_item(title="Zumbar", track_number=1)
    driver.shows_track_menu_item(title="Chevere!", track_number=2)
Ejemplo n.º 11
0
def test_holds_a_list_of_tracks_in_order():
    album = Album()
    album.add_track(build.track(track_title="Track 1"))
    album.add_track(build.track(track_title="Track 2"))
    album.add_track(build.track(track_title="Track 3"))

    assert_that(
        album.tracks,
        contains(has_property("track_title", "Track 1"),
                 has_property("track_title", "Track 2"),
                 has_property("track_title", "Track 3")), "track titles")
Ejemplo n.º 12
0
def test_removes_track_menu_item_when_closing_an_project(driver):
    window_ = show_main_window()
    project = build.album(tracks=[build.track(track_title="Chevere!"), build.track(track_title="Zumbar")])
    window_.display_project_screen(project)

    window_.display_startup_screen()

    project = build.album()
    window_.display_project_screen(project)

    driver.does_not_show_menu_item(title="Chevere!", track_number=1)
    driver.does_not_show_menu_item(title="Zumbar", track_number=2)
Ejemplo n.º 13
0
def test_signals_track_insertion_events():
    album = build.album()
    subscriber = Subscriber()
    tracks = [build.track(), build.track(), build.track()]

    album.track_inserted.subscribe(subscriber)
    for track in tracks:
        album.add_track(track)

    for index, track in enumerate(tracks):
        assert_that(subscriber.events, has_item(event(index, track)),
                    "track {0} insertion event".format(index))
Ejemplo n.º 14
0
def test_writes_one_record_per_track_in_album(formatter, out):
    project = make_album(tracks=[build.track(track_title="Song 1"),
                                 build.track(track_title="Song 2"),
                                 build.track(track_title="Song 3")])

    formatter.write(project, out)

    rows = read_csv(out)
    _ = next(rows)
    assert_that(next(rows), has_item("Song 1"), "first row")
    assert_that(next(rows), has_item("Song 2"), "second row")
    assert_that(next(rows), has_item("Song 3"), "third row")
Ejemplo n.º 15
0
def test_allows_removing_tracks():
    album = build.album(tracks=[
        build.track(track_title="Track 1"),
        build.track(track_title="Track 2"),
        build.track(track_title="Track 3")
    ])

    album.remove_track(1)

    assert_that(album.tracks, has_length(2), "remaining tracks")
    assert_that(album.tracks,
                is_not(has_item(has_property("track_title", "Track 2"))),
                "tracks")
Ejemplo n.º 16
0
def test_displays_album_summary_in_banner(driver):
    track = make_track()
    album = make_album(release_name="Album Title",
                       lead_performer="Artist",
                       label_name="Record Label",
                       tracks=[build.track(), track,
                               build.track()])

    _ = show_page(album, track)

    driver.shows_album_title("Album Title")
    driver.shows_album_lead_performer("Artist")
    driver.shows_track_number("2")
Ejemplo n.º 17
0
def test_writes_one_record_per_track_in_album(formatter, out):
    project = make_album(tracks=[
        build.track(track_title="Song 1"),
        build.track(track_title="Song 2"),
        build.track(track_title="Song 3")
    ])

    formatter.write(project, out)

    rows = read_csv(out)
    _ = next(rows)
    assert_that(next(rows), has_item("Song 1"), "first row")
    assert_that(next(rows), has_item("Song 2"), "second row")
    assert_that(next(rows), has_item("Song 3"), "third row")
Ejemplo n.º 18
0
def test_removes_track_menu_item_when_closing_an_project(driver):
    window_ = show_main_window()
    project = build.album(tracks=[
        build.track(track_title="Chevere!"),
        build.track(track_title="Zumbar")
    ])
    window_.display_project_screen(project)

    window_.display_startup_screen()

    project = build.album()
    window_.display_project_screen(project)

    driver.does_not_show_menu_item(title="Chevere!", track_number=1)
    driver.does_not_show_menu_item(title="Zumbar", track_number=2)
Ejemplo n.º 19
0
def test_supports_inserting_tracks_at_a_specific_positions():
    album = build.album(tracks=[
        build.track(track_title="Track 1"),
        build.track(track_title="Track 2"),
        build.track(track_title="Track 3")
    ])

    first = album.remove_track(0)
    album.insert_track(first, 1)

    assert_that(
        album.tracks,
        contains(has_property("track_title", "Track 2"),
                 has_property("track_title", "Track 1"),
                 has_property("track_title", "Track 3")), "tracks")
Ejemplo n.º 20
0
def test_signals_track_removal_events():
    tracks = [build.track(), build.track(), build.track()]
    album = build.album()
    for track in tracks:
        album.add_track(track)

    subscriber = Subscriber()
    album.track_removed.subscribe(subscriber)

    for index in reversed(range(len(album))):
        album.remove_track(index)

    for index, track in enumerate(tracks):
        assert_that(subscriber.events, has_item(contains(index, track)),
                    "track {0} removal event".format(index))
Ejemplo n.º 21
0
def test_adds_track_menu_item_when_adding_a_track_to_the_project(driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)
    project.add_track(build.track(track_title="Chevere!"))

    driver.shows_track_menu_item(title="Chevere!", track_number=1)
Ejemplo n.º 22
0
def test_round_trips_album_metadata_and_tracks_to_disk(project_file, mp3):
    album_file = project_file("album.tgit")
    original_tracks = (build.track(mp3(), track_title=title)
                       for title in ("1st", "2nd", "3rd"))

    original_album = build.album(filename=album_file,
                                 version="1.11.0",
                                 type=Album.Type.FLAC,
                                 lead_performer="Artist",
                                 images=[sample_front_cover],
                                 tracks=original_tracks)

    local_project.save_project(
        original_album, track_name=lambda track: track.track_title + ".mp3")
    delete_from_disk(*original_tracks)
    stored_album = local_project.load_project(album_file)

    assert_that(stored_album.type, equal_to(Album.Type.FLAC), "type")
    assert_that(stored_album.lead_performer, equal_to("Artist"),
                "lead performer")
    assert_that(stored_album.images, contains(Image(*sample_front_cover)),
                "images")
    assert_that(
        stored_album.tracks,
        contains(
            has_filename(project_file(TRACKS_FOLDER_NAME, "1st.mp3")),
            has_filename(project_file(TRACKS_FOLDER_NAME, "2nd.mp3")),
            has_filename(project_file(TRACKS_FOLDER_NAME, "3rd.mp3")),
        ), "tracks")
Ejemplo n.º 23
0
def test_adds_track_menu_item_when_adding_a_track_to_the_project(driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)
    project.add_track(build.track(track_title="Chevere!"))

    driver.shows_track_menu_item(title="Chevere!", track_number=1)
Ejemplo n.º 24
0
def test_cleans_superflous_isnis_before_tagging(mp3):
    album = build.album(release_name="Album Title",
                        lead_performer="Album Artist",
                        isnis={
                            "Album Artist": "0000000123456789",
                            "Album Lyricist": "9876543210000000",
                            "Album Composer": "1234567890000000",
                            "Album Publisher": "0000000987654321",
                            "Previous Album Artist": "1234567890000000",
                            "Previous Album Lyricist": "0000000987654321"
                        })
    track = build.track(filename=mp3(),
                        track_title="Track Title",
                        lyricist=["Album Lyricist"],
                        composer=["Album Composer"],
                        publisher=["Album Publisher"],
                        album=album)

    tagging.save_track(track)

    track = tagging.load_track(track.filename)
    assert_that(
        track.metadata,
        has_entries(release_name="Album Title",
                    lead_performer="Album Artist",
                    isnis={
                        "Album Artist": "0000000123456789",
                        "Album Lyricist": "9876543210000000",
                        "Album Composer": "1234567890000000",
                        "Album Publisher": "0000000987654321"
                    },
                    track_title="Track Title"), "metadata tags")
Ejemplo n.º 25
0
def test_round_trips_track_and_album_metadata(mp3):
    album = build.album(
        release_name="Album Title",
        lead_performer="Album Artist",
        isnis={"Album Artist": "0000000123456789"},
        ipis={"Album Lyricist": "9876543210000000"},
        images=[build.image(mime="image/jpeg", data=b"<image data>")])
    track = build.track(filename=mp3(),
                        track_title="Track Title",
                        album=album,
                        lyricist=["Album Lyricist"])

    tagging.save_track(track)

    track = tagging.load_track(track.filename)
    assert_that(
        track.metadata,
        has_entries(release_name="Album Title",
                    lead_performer="Album Artist",
                    isnis={"Album Artist": "0000000123456789"},
                    ipis={"Album Lyricist": "9876543210000000"},
                    track_title="Track Title"), "metadata tags")
    assert_that(track.metadata.images,
                contains(Image(mime="image/jpeg", data=b"<image data>")),
                "attached pictures")
Ejemplo n.º 26
0
def test_contained_tracks_have_lead_performer_of_album_when_album_is_not_a_compilation(
):
    track = build.track(lead_performer="???")
    album = build.album(lead_performer="Joel Miller")

    album.add_track(track)

    assert_that(track.lead_performer, "Joel Miller", "track lead performer")
Ejemplo n.º 27
0
def _assert_notifies_of_metadata_change(prop, value):
    track = build.track()
    subscriber = Subscriber()
    track.metadata_changed.subscribe(subscriber)

    setattr(track, prop, value)

    assert_that(subscriber.events, contains(contains(has_property(prop, value))), "track changed events")
Ejemplo n.º 28
0
def test_make_line_breaks_excel_friendly_by_converting_line_feeds_to_carriage_returns(formatter, out):
    project = make_album(tracks=[build.track(comments="Comments\nspanning\nseveral lines")])

    formatter.write(project, out)

    csv_file = read_csv(out)
    _ = next(csv_file)
    assert_that(next(csv_file), has_item("Comments\rspanning\rseveral lines"), "row with line feeds")
Ejemplo n.º 29
0
def test_contained_tracks_have_various_lead_performers_when_album_is_a_compilation(
):
    track = build.track(lead_performer="Joel Miller")
    compilation = build.album(lead_performer="Various Artists",
                              compilation=True)

    compilation.add_track(track)

    assert_that(track.lead_performer, "Joel Miller", "track lead performer")
Ejemplo n.º 30
0
def test_removes_track_menu_item_when_removing_a_track_from_the_project(driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)

    project.add_track(build.track(track_title="Chevere!"))
    project.remove_track(0)

    driver.does_not_show_menu_item(title="Chevere!", track_number=1)
Ejemplo n.º 31
0
def test_names_track_file_with_lead_performer_and_track_number_and_track_title(
):
    track = build.track(filename="track.mp3",
                        track_title="title",
                        lead_performer="artist",
                        track_number=3)

    assert_that(naming.track_scheme(track),
                equal_to("artist - 03 - title.mp3"), "name of track file")
Ejemplo n.º 32
0
def _assert_notifies_of_metadata_change(prop, value):
    track = build.track()
    subscriber = Subscriber()
    track.metadata_changed.subscribe(subscriber)

    setattr(track, prop, value)

    assert_that(subscriber.events, contains(contains(has_property(prop,
                                                                  value))),
                "track changed events")
Ejemplo n.º 33
0
def test_removes_track_menu_item_when_removing_a_track_from_the_project(
        driver):
    window_ = show_main_window()
    project = build.album()
    window_.display_project_screen(project)

    project.add_track(build.track(track_title="Chevere!"))
    project.remove_track(0)

    driver.does_not_show_menu_item(title="Chevere!", track_number=1)
Ejemplo n.º 34
0
def test_make_line_breaks_excel_friendly_by_converting_line_feeds_to_carriage_returns(
        formatter, out):
    project = make_album(
        tracks=[build.track(comments="Comments\nspanning\nseveral lines")])

    formatter.write(project, out)

    csv_file = read_csv(out)
    _ = next(csv_file)
    assert_that(next(csv_file), has_item("Comments\rspanning\rseveral lines"),
                "row with line feeds")
Ejemplo n.º 35
0
def test_adds_version_information_to_tags(mp3):
    track = build.track(filename=mp3(), album=build.album())

    tagging.save_track(track, at_time=NOW)

    track = tagging.load_track(track.filename)
    assert_that(
        track,
        has_properties(tagger='TGiT',
                       tagger_version=tgit.__version__,
                       tagging_time="2014-03-23 20:44:33"))
Ejemplo n.º 36
0
def test_does_not_update_track_with_album_lead_performer_when_album_is_a_compilation(
        mp3):
    album = build.album(lead_performer="Various Artists", compilation=True)
    track = build.track(filename=mp3(),
                        lead_performer="Track Artist",
                        album=album)

    tagging.save_track(track)

    track = tagging.load_track(track.filename)
    assert_that(track.lead_performer, equal_to("Track Artist"),
                "lead performer")
Ejemplo n.º 37
0
def test_writes_compilation_tracks_to_workbook():
    album = build.album(release_name="Release Name",
                        lead_performer="Various Artists",
                        compilation=True)

    album.add_track(build.track(lead_performer="performer"))

    workbook = Workbook()

    write(album, workbook)

    has_line_metadata(workbook.active,
                      A13="Release Name",
                      B13="Artistes Variés",
                      N13="performer",
                      K13="O")
Ejemplo n.º 38
0
def test_writes_compilation_tracks_to_workbook():
    album = build.album(
        release_name="Release Name",
        lead_performer="Various Artists",
        compilation=True)

    album.add_track(build.track(lead_performer="performer"))

    workbook = Workbook()

    write(album, workbook)

    has_line_metadata(workbook.active,
                      A13="Release Name",
                      B13="Artistes Variés",
                      N13="performer",
                      K13="O")
Ejemplo n.º 39
0
def test_remove_previous_artwork_and_tracks(project_file, mp3):
    album_file = project_file("album.tgit")
    tracks = (build.track(mp3(), track_title=title) for title in ("1st", "2nd", "3rd"))
    album = build.album(filename=album_file,
                        images=[sample_front_cover],
                        tracks=tracks)

    local_project.save_project(album, simple_naming)

    for position in reversed(range(len(album))):
        album.remove_track(position)

    album.remove_images()

    local_project.save_project(album, simple_naming)

    assert_that(fs.list_dir(project_file(TRACKS_FOLDER_NAME)), empty(), "track files left")
    assert_that(fs.list_dir(project_file(ARTWORK_FOLDER_NAME)), empty(), "artwork files left")
Ejemplo n.º 40
0
def test_remove_previous_artwork_and_tracks(project_file, mp3):
    album_file = project_file("album.tgit")
    tracks = (build.track(mp3(), track_title=title)
              for title in ("1st", "2nd", "3rd"))
    album = build.album(filename=album_file,
                        images=[sample_front_cover],
                        tracks=tracks)

    local_project.save_project(album, simple_naming)

    for position in reversed(range(len(album))):
        album.remove_track(position)

    album.remove_images()

    local_project.save_project(album, simple_naming)

    assert_that(fs.list_dir(project_file(TRACKS_FOLDER_NAME)), empty(),
                "track files left")
    assert_that(fs.list_dir(project_file(ARTWORK_FOLDER_NAME)), empty(),
                "artwork files left")
Ejemplo n.º 41
0
def test_round_trips_album_metadata_and_tracks_to_disk(project_file, mp3):
    album_file = project_file("album.tgit")
    original_tracks = (build.track(mp3(), track_title=title) for title in ("1st", "2nd", "3rd"))

    original_album = build.album(filename=album_file,
                                 version="1.11.0",
                                 type=Album.Type.FLAC,
                                 lead_performer="Artist",
                                 images=[sample_front_cover],
                                 tracks=original_tracks)

    local_project.save_project(original_album, track_name=lambda track: track.track_title + ".mp3")
    delete_from_disk(*original_tracks)
    stored_album = local_project.load_project(album_file)

    assert_that(stored_album.type, equal_to(Album.Type.FLAC), "type")
    assert_that(stored_album.lead_performer, equal_to("Artist"), "lead performer")
    assert_that(stored_album.images, contains(Image(*sample_front_cover)), "images")
    assert_that(stored_album.tracks, contains(has_filename(project_file(TRACKS_FOLDER_NAME, "1st.mp3")),
                                              has_filename(project_file(TRACKS_FOLDER_NAME, "2nd.mp3")),
                                              has_filename(project_file(TRACKS_FOLDER_NAME, "3rd.mp3")), ), "tracks")
Ejemplo n.º 42
0
def test_writes_tracks_to_workbook():
    album = build.album(
        release_name="Release Name",
        lead_performer="Lead Performer",
        lead_performer_region=("CA",),
        compilation=False,
        label_name="Label Name",
        catalog_number="Catalog Number",
        upc="Barcode",
        release_time="2014-05-10")

    album.add_track(build.track(track_title="Track Title",
                                isrc="ISRC",
                                duration=60,
                                recording_studio_region=("CA",),
                                production_company="Production Company",
                                production_company_region=("US",),
                                recording_time="2013-05-10"))
    album.add_track(build.track(track_title="Track Title1",
                                isrc="ISRC1",
                                duration=120,
                                recording_studio_region=("CA",),
                                production_company="Production Company",
                                production_company_region=("US",),
                                recording_time="2013-05-10"))

    workbook = Workbook()

    write(album, workbook)

    has_rights_holder(workbook.active, "Label Name", str(date.today()))
    has_line_metadata(workbook.active,
                      A13="Release Name",
                      B13="Lead Performer",
                      C13="CAN",
                      D13="Label Name",
                      E13="Label Name",
                      F13="",
                      G13="Catalog Number",
                      H13="Barcode",
                      I13="2014-05-10",
                      J13="",
                      K13="N",
                      L13="1",
                      M13="Track Title",
                      N13="Lead Performer",
                      O13="CAN",
                      P13="ISRC",
                      Q13="00:01:00",
                      R13="CAN",
                      S13="2013",
                      T13="Production Company",
                      U13="USA",
                      V13="RE/CP/Repro",
                      W13="100",
                      X13="WW",
                      Y13="",
                      Z13="",
                      AA13="")

    has_line_metadata(workbook.active,
                      A14="Release Name",
                      B14="Lead Performer",
                      C14="CAN",
                      D14="Label Name",
                      E14="Label Name",
                      F14="",
                      G14="Catalog Number",
                      H14="Barcode",
                      I14="2014-05-10",
                      J14="",
                      K14="N",
                      L14="2",
                      M14="Track Title1",
                      N14="Lead Performer",
                      O14="CAN",
                      P14="ISRC1",
                      Q14="00:02:00",
                      R14="CAN",
                      S14="2013",
                      T14="Production Company",
                      U14="USA",
                      V14="RE/CP/Repro",
                      W14="100",
                      X14="WW",
                      Y14="",
                      Z14="",
                      AA14="")
Ejemplo n.º 43
0
def test_names_track_file_with_lead_performer_and_track_number_and_track_title():
    track = build.track(filename="track.mp3", track_title="title", lead_performer="artist", track_number=3)

    assert_that(naming.track_scheme(track), equal_to("artist - 03 - title.mp3"), "name of track file")
Ejemplo n.º 44
0
def test_numbers_tracks():
    album = make_album(tracks=(build.track(), build.track(), build.track()))

    assert_has_numbered_tracks(album)
Ejemplo n.º 45
0
def test_renumbers_tracks_when_removed():
    album = make_album(tracks=(build.track(), build.track(), build.track()))

    album.remove_track(0)

    assert_has_numbered_tracks(album)
Ejemplo n.º 46
0
def test_updates_tracks_main_artist_when_album_is_not_a_compilation():
    album = build.album(tracks=[build.track(), build.track(), build.track()])
    director.update_album_from(album)(lead_performer="Album Artist")

    for track in album.tracks:
        assert_that(track.lead_performer, equal_to("Album Artist"), "track artist")
Ejemplo n.º 47
0
def test_writes_tracks_to_workbook():
    album = build.album(release_name="Release Name",
                        lead_performer="Lead Performer",
                        lead_performer_region=("CA", ),
                        compilation=False,
                        label_name="Label Name",
                        catalog_number="Catalog Number",
                        upc="Barcode",
                        release_time="2014-05-10")

    album.add_track(
        build.track(track_title="Track Title",
                    isrc="ISRC",
                    duration=60,
                    recording_studio_region=("CA", ),
                    production_company="Production Company",
                    production_company_region=("US", ),
                    recording_time="2013-05-10"))
    album.add_track(
        build.track(track_title="Track Title1",
                    isrc="ISRC1",
                    duration=120,
                    recording_studio_region=("CA", ),
                    production_company="Production Company",
                    production_company_region=("US", ),
                    recording_time="2013-05-10"))

    workbook = Workbook()

    write(album, workbook)

    has_rights_holder(workbook.active, "Label Name", str(date.today()))
    has_line_metadata(workbook.active,
                      A13="Release Name",
                      B13="Lead Performer",
                      C13="CAN",
                      D13="Label Name",
                      E13="Label Name",
                      F13="",
                      G13="Catalog Number",
                      H13="Barcode",
                      I13="2014-05-10",
                      J13="",
                      K13="N",
                      L13="1",
                      M13="Track Title",
                      N13="Lead Performer",
                      O13="CAN",
                      P13="ISRC",
                      Q13="00:01:00",
                      R13="CAN",
                      S13="2013",
                      T13="Production Company",
                      U13="USA",
                      V13="RE/CP/Repro",
                      W13="100",
                      X13="WW",
                      Y13="",
                      Z13="",
                      AA13="")

    has_line_metadata(workbook.active,
                      A14="Release Name",
                      B14="Lead Performer",
                      C14="CAN",
                      D14="Label Name",
                      E14="Label Name",
                      F14="",
                      G14="Catalog Number",
                      H14="Barcode",
                      I14="2014-05-10",
                      J14="",
                      K14="N",
                      L14="2",
                      M14="Track Title1",
                      N14="Lead Performer",
                      O14="CAN",
                      P14="ISRC1",
                      Q14="00:02:00",
                      R14="CAN",
                      S14="2013",
                      T14="Production Company",
                      U14="USA",
                      V14="RE/CP/Repro",
                      W14="100",
                      X14="WW",
                      Y14="",
                      Z14="",
                      AA14="")