File: test_ia_metadata.py

package info (click to toggle)
python-internetarchive 5.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,000 kB
  • sloc: python: 7,445; xml: 180; makefile: 180
file content (40 lines) | stat: -rw-r--r-- 1,546 bytes parent folder | download | duplicates (2)
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
import sys
from time import time

import responses

from tests.conftest import IaRequestsMock, ia_call


def test_ia_metadata_exists(capsys):
    with IaRequestsMock() as rsps:
        rsps.add_metadata_mock('nasa')
        ia_call(['ia', 'metadata', '--exists', 'nasa'], expected_exit_code=0)
        out, err = capsys.readouterr()
        assert err == 'nasa exists\n'
        rsps.reset()
        rsps.add_metadata_mock('nasa', '{}')
        sys.argv = ['ia', 'metadata', '--exists', 'nasa']
        ia_call(['ia', 'metadata', '--exists', 'nasa'], expected_exit_code=1)
        out, err = capsys.readouterr()
        assert err == 'nasa does not exist\n'


def test_ia_metadata_formats(capsys, nasa_mocker):
    ia_call(['ia', 'metadata', '--formats', 'nasa'])
    out, err = capsys.readouterr()
    expected_formats = {'Collection Header', 'Archive BitTorrent', 'JPEG',
                        'Metadata', ''}
    assert set(out.split('\n')) == expected_formats


def test_ia_metadata_modify(capsys):
    md_rsp = ('{"success":true,"task_id":447613301,'
              '"log":"https://catalogd.archive.org/log/447613301"}')
    with IaRequestsMock() as rsps:
        rsps.add_metadata_mock('nasa', method=responses.GET)
        rsps.add_metadata_mock('nasa', body=md_rsp, method=responses.POST)
        valid_key = f'foo-{int(time())}'
        ia_call(['ia', 'metadata', 'nasa', '--modify', f'{valid_key}:test_value'])
        out, err = capsys.readouterr()
        assert err == 'nasa - success: https://catalogd.archive.org/log/447613301\n'