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
|
"""Tests related to pynwb.io.utils."""
import pytest
from hdmf.build import GroupBuilder
from pynwb.io.utils import get_nwb_version
from pynwb.testing import TestCase
class TestGetNWBVersion(TestCase):
def test_get_nwb_version(self):
"""Get the NWB version from a builder."""
builder1 = GroupBuilder(name="root")
builder1.set_attribute(name="nwb_version", value="2.0.0")
builder2 = GroupBuilder(name="another")
builder1.set_group(builder2)
assert get_nwb_version(builder1) == (2, 0, 0)
assert get_nwb_version(builder2) == (2, 0, 0)
def test_get_nwb_version_missing(self):
"""Get the NWB version from a builder where the root builder does not have an nwb_version attribute."""
builder1 = GroupBuilder(name="root")
builder2 = GroupBuilder(name="another")
builder1.set_group(builder2)
with pytest.raises(ValueError, match="'nwb_version' attribute is missing from the root of the NWB file."):
get_nwb_version(builder1)
with pytest.raises(ValueError, match="'nwb_version' attribute is missing from the root of the NWB file."):
get_nwb_version(builder1)
def test_get_nwb_version_prerelease_false(self):
"""Get the NWB version from a builder."""
builder1 = GroupBuilder(name="root")
builder1.set_attribute(name="nwb_version", value="2.0.0-alpha")
assert get_nwb_version(builder1) == (2, 0, 0)
def test_get_nwb_version_prerelease_true1(self):
"""Get the NWB version from a builder."""
builder1 = GroupBuilder(name="root")
builder1.set_attribute(name="nwb_version", value="2.0.0-alpha")
assert get_nwb_version(builder1, include_prerelease=True) == (2, 0, 0, "alpha")
def test_get_nwb_version_prerelease_true2(self):
"""Get the NWB version from a builder."""
builder1 = GroupBuilder(name="root")
builder1.set_attribute(name="nwb_version", value="2.0.0-alpha.sha-test.5114f85")
assert get_nwb_version(builder1, include_prerelease=True) == (2, 0, 0, "alpha.sha-test.5114f85")
def test_get_nwb_version_20b(self):
"""Get the NWB version from a builder where version == "2.0b"."""
builder1 = GroupBuilder(name="root")
builder1.set_attribute(name="nwb_version", value="2.0b")
assert get_nwb_version(builder1) == (2, 0, 0)
assert get_nwb_version(builder1, include_prerelease=True) == (2, 0, 0, "b")
|