def test_new_youtube_download(mock_youtube_download, mock_gallery_download,
                              mock_sw_download):
    # GIVEN
    mock_sw_object = MagicMock(is_valid=MagicMock(return_value=False), id=1)
    mock_youtube_object = MagicMock(is_valid=MagicMock(return_value=True),
                                    id=1)
    mock_gallery_object = MagicMock(is_valid=MagicMock(return_value=False),
                                    id=1)

    mock_sw_download.return_value = mock_sw_object
    mock_youtube_download.return_value = mock_youtube_object
    mock_gallery_download.return_value = mock_gallery_object

    # WHEN
    resp = client.post(
        "api/downloads",
        data=json.dumps({"url": "https://youtube.com/blah"}),
        content_type="application/json",
    )

    # THEN
    assert resp.status == "201 CREATED", resp.get_json()
    assert resp.mimetype == "application/json"

    mock_sw_download.assert_called_once()
    mock_youtube_download.assert_called_once()
    mock_gallery_download.assert_not_called()

    mock_sw_object.is_valid.assert_called_once()
    mock_youtube_object.is_valid.assert_called_once()
    mock_gallery_object.is_valid.assert_not_called()
def test_get_directories_no_path():
    # WHEN
    resp = client.post("/api/directories",
                       data=json.dumps({}),
                       content_type="application/json")

    # THEN
    assert resp.status == "400 BAD REQUEST", resp.get_json()
    assert resp.mimetype == "application/json"
    assert "error" in resp.get_json()
    assert resp.get_json()["error"] == "'path' not found in request"
def test_get_directories(isdir_mock, listdir_mock):
    # WHEN
    resp = client.post(
        "/api/directories",
        data=json.dumps({"path": "/downloads"}),
        content_type="application/json",
    )

    # THEN
    assert resp.status == "200 OK", resp.get_json()
    assert resp.mimetype == "application/json"
    assert "directories" in resp.get_json()
    assert resp.get_json()["directories"] == ["dir1", "dir2", "dir3"]
Exemplo n.º 4
0
def test_create_new_setting():
    # GIVEN
    reset_db(db)

    # WHEN
    resp = client.post(
        "/api/settings",
        data=json.dumps({"settings": {
            "downloadDirectory": "/changed"
        }}),
        content_type="application/json",
    )

    # THEN
    assert resp.status == "201 CREATED", resp.get_json()
    assert resp.mimetype == "application/json"

    setting = (db.session.query(Settings).filter(
        Settings.key == "downloadDirectory").first())
    assert setting is not None
    assert setting.value == "/changed"