test_internet.py 1.71 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
"""This file should contain all tests that need access to the internet (apart
from the ones in test_datasets_download.py)

We want to bundle all internet-related tests in one file, so the file can be
cleanly ignored in FB internal test infra.
"""

import os
from urllib.error import URLError

11
import pytest
12
13
14
import torchvision.datasets.utils as utils


15
class TestDatasetUtils:
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    def test_download_url(self, tmpdir):
        url = "http://github.com/pytorch/vision/archive/master.zip"
        try:
            utils.download_url(url, tmpdir)
            assert len(os.listdir(tmpdir)) != 0
        except URLError:
            pytest.skip(f"could not download test file '{url}'")

    def test_download_url_retry_http(self, tmpdir):
        url = "https://github.com/pytorch/vision/archive/master.zip"
        try:
            utils.download_url(url, tmpdir)
            assert len(os.listdir(tmpdir)) != 0
        except URLError:
            pytest.skip(f"could not download test file '{url}'")

    def test_download_url_dont_exist(self, tmpdir):
        url = "http://github.com/pytorch/vision/archive/this_doesnt_exist.zip"
        with pytest.raises(URLError):
            utils.download_url(url, tmpdir)

    def test_download_url_dispatch_download_from_google_drive(self, mocker, tmpdir):
38
        url = "https://drive.google.com/file/d/1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV/view"
39

40
        id = "1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV"
41
42
43
        filename = "filename"
        md5 = "md5"

44
        mocked = mocker.patch("torchvision.datasets.utils.download_file_from_google_drive")
45
        utils.download_url(url, tmpdir, filename, md5)
46

47
        mocked.assert_called_once_with(id, tmpdir, filename, md5)
48
49


50
if __name__ == "__main__":
51
    pytest.main([__file__])