1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
from copy import deepcopy
from internetarchive import get_session
from internetarchive.cli import ia_list
from tests.conftest import IaRequestsMock
SESSION = get_session()
NASA_FILES = set([
'NASAarchiveLogo.jpg',
'globe_west_540.jpg',
'nasa_reviews.xml',
'nasa_meta.xml',
'nasa_archive.torrent',
'nasa_files.xml'
])
def test_ia_list(capsys, nasa_mocker):
ia_list.main(['list', 'nasa'], SESSION)
out, err = capsys.readouterr()
assert set([l for l in out.split('\n') if l]) == NASA_FILES
def test_ia_list_verbose(capsys, nasa_mocker):
ia_list.main(['list', '--verbose', 'nasa'], SESSION)
out, err = capsys.readouterr()
_nasa_files = deepcopy(NASA_FILES)
_nasa_files.add('name')
assert set([l for l in out.split('\n') if l]) == _nasa_files
def test_ia_list_all(capsys, nasa_mocker):
ia_list.main(['list', '--all', 'nasa'], SESSION)
out, err = capsys.readouterr()
out = [l for l in out.split('\n') if l]
assert len(out) == 6
assert all(len(f.split('\t')) == 9 for f in out)
assert all(f.split('\t')[0] in NASA_FILES for f in out)
def test_ia_list_location(capsys, nasa_mocker):
ia_list.main(['list', '--location', '--glob', '*meta.xml', 'nasa'], SESSION)
out, err = capsys.readouterr()
assert out == 'https://archive.org/download/nasa/nasa_meta.xml\n'
def test_ia_list_columns(capsys):
with IaRequestsMock() as rsps:
rsps.add_metadata_mock('nasa')
ia_list.main(['list', '--columns', 'name,md5', '--glob', '*meta.xml', 'nasa'],
SESSION)
out, err = capsys.readouterr()
assert out == 'nasa_meta.xml\t0e339f4a29a8bc42303813cbec9243e5\n'
with IaRequestsMock() as rsps:
rsps.add_metadata_mock('nasa')
ia_list.main(['list', '--columns', 'md5', '--glob', '*meta.xml', 'nasa'], SESSION)
out, err = capsys.readouterr()
assert out == '0e339f4a29a8bc42303813cbec9243e5\n'
def test_ia_list_glob(capsys, nasa_mocker):
ia_list.main(['list', '--glob', '*torrent', 'nasa'], SESSION)
out, err = capsys.readouterr()
assert out == 'nasa_archive.torrent\n'
def test_ia_list_format(capsys, nasa_mocker):
ia_list.main(['list', '--format', 'Metadata', 'nasa'], SESSION)
out, err = capsys.readouterr()
expected_output = set([
'nasa_reviews.xml',
'nasa_files.xml',
'nasa_meta.xml',
])
assert set([f for f in out.split('\n') if f]) == expected_output
def test_ia_list_non_existing(capsys):
with IaRequestsMock() as rsps:
rsps.add_metadata_mock('nasa', body="{}")
try:
ia_list.main(['list', 'nasa'], SESSION)
except SystemExit as exc:
assert exc.code == 1
out, err = capsys.readouterr()
assert out == ''
|