File: test_latest.py

package info (click to toggle)
python-aioopenexchangerates 0.4.14-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 440 kB
  • sloc: python: 298; makefile: 13; javascript: 8
file content (70 lines) | stat: -rw-r--r-- 1,924 bytes parent folder | download
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
"""Test endpoint latest.json."""

from collections.abc import Callable

from aioresponses import aioresponses
import pytest

from aioopenexchangerates.client import Client


@pytest.mark.parametrize(
    "base, latest_latest", [("USD", "USD"), ("EUR", "EUR")], indirect=["latest_latest"]
)
async def test_get_latest(
    client: Client,
    mock_response: aioresponses,
    latest_latest: str,
    generate_url: Callable[..., str],
    base: str,
) -> None:
    """Test get_latest."""
    mock_response.get(
        generate_url("latest.json", app_id=client.api_key, base=base),
        body=latest_latest,
    )

    result = await client.get_latest(base=base)

    assert result.disclaimer == "https://openexchangerates.org/terms/"
    assert result.license == "https://openexchangerates.org/license/"
    assert result.timestamp == 1449877801
    assert result.base == base
    assert result.rates == {
        "AED": 3.672538,
        "AFN": 66.809999,
        "ALL": 125.716501,
        "AMD": 484.902502,
        "ANG": 1.788575,
        "AOA": 135.295998,
        "ARS": 9.750101,
        "AUD": 1.390866,
    }


async def test_get_latest_symbols(
    client: Client,
    mock_response: aioresponses,
    latest_latest_usd_symbols: str,
    generate_url: Callable[..., str],
) -> None:
    """Test get_latest."""
    base = "USD"
    symbols = ["AMD", "ANG"]
    mock_response.get(
        generate_url(
            "latest.json", app_id=client.api_key, base=base, symbols=",".join(symbols)
        ),
        body=latest_latest_usd_symbols,
    )

    result = await client.get_latest(base=base, symbols=symbols)

    assert result.disclaimer == "https://openexchangerates.org/terms/"
    assert result.license == "https://openexchangerates.org/license/"
    assert result.timestamp == 1449877801
    assert result.base == base
    assert result.rates == {
        "AMD": 484.902502,
        "ANG": 1.788575,
    }