File: test_external.py

package info (click to toggle)
python-asdf 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,032 kB
  • sloc: python: 24,068; makefile: 123
file content (26 lines) | stat: -rw-r--r-- 829 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
import numpy as np
import pytest

import asdf
from asdf._block import external


def test_cache(tmp_path):
    efn = tmp_path / "test.asdf"
    arr = np.arange(3, dtype="uint8")
    asdf.AsdfFile({"data": arr}).write_to(efn)

    cache = external.ExternalBlockCache()
    base_uri = f"{tmp_path.as_uri()}/"
    data = cache.load(base_uri, "test.asdf")
    np.testing.assert_array_equal(data, arr)
    assert cache.load(base_uri, "test.asdf") is data
    assert cache.load(base_uri, "#") is external.UseInternal
    assert cache.load(base_uri, "") is external.UseInternal


@pytest.mark.parametrize("uri", ["test.asdf", "foo/test.asdf"])
@pytest.mark.parametrize("index", [0, 1, 100])
def test_relative_uri_for_index(uri, index):
    match = f"test{index:04d}.asdf"
    assert external.relative_uri_for_index(uri, index) == match