def test_release_assignment_methods_init_dest(plugin_config, tmpdir, caplog):
    plugin_config.CourseDirectory.root = "/"

    plugin_config.CourseDirectory.release_directory = str(tmpdir.mkdir(release_dir).realpath())
    plugin_config.CourseDirectory.assignment_id = "assign_1"

    plugin = ExchangeReleaseAssignment(coursedir=CourseDirectory(config=plugin_config), config=plugin_config)
    with pytest.raises(ExchangeError) as e_info:
        plugin.init_dest()
        assert str(e_info.value) == "No course id specified. Re-run with --course flag."
def test_release_assignment_methods_the_rest(plugin_config, tmpdir, caplog):
    plugin_config.CourseDirectory.root = "/"

    plugin_config.CourseDirectory.release_directory = str(
        tmpdir.mkdir(release_dir).realpath())
    plugin_config.CourseDirectory.assignment_id = "assign_1"

    plugin = ExchangeReleaseAssignment(
        coursedir=CourseDirectory(config=plugin_config), config=plugin_config)
    os.makedirs(
        os.path.join(plugin_config.CourseDirectory.release_directory,
                     "assign_1"),
        exist_ok=True,
    )
    copyfile(
        notebook1_filename,
        os.path.join(plugin_config.CourseDirectory.release_directory,
                     "assign_1", "release.ipynb"),
    )
    with open(
            os.path.join(plugin_config.CourseDirectory.release_directory,
                         "assign_1", "timestamp.txt"),
            "w",
    ) as fp:
        fp.write("2020-01-01 00:00:00.0 UTC")

    plugin.init_src()
    plugin.init_dest()
    with pytest.raises(AttributeError) as e_info:
        foo = plugin.dest_path
        assert (str(
            e_info.value
        ) == "'ExchangeReleaseAssignment' object has no attribute 'dest_path'")

    file = plugin.tar_source()
    assert len(file) > 1000
    plugin.get_notebooks()
    assert plugin.notebooks == ["release"]