You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.0 KiB
73 lines
2.0 KiB
2 years ago
|
# -*- encoding: utf-8 -*-
|
||
|
import pytest
|
||
|
import sys
|
||
|
from cnmodel import data
|
||
|
|
||
|
|
||
|
table = u"""
|
||
|
|
||
|
Description of data
|
||
|
It has multiple lines
|
||
|
|
||
|
And empty lines.
|
||
|
|
||
|
-------------------------------------------------------------------------------
|
||
|
col1 col2 col3
|
||
|
param1 15±6.5 [1] 2.2±1.5 [2] 0.87±0.23 [3]
|
||
|
param2 3 5 0.87±0.23 [3]
|
||
|
param3 3.4 7 [2]
|
||
|
param4 1 [12]
|
||
|
-------------------------------------------------------------------------------
|
||
|
|
||
|
[1] Source 1
|
||
|
[2] Multiline source
|
||
|
#2
|
||
|
end of #2
|
||
|
[3] Multiline source
|
||
|
#3
|
||
|
end of #3
|
||
|
|
||
|
[12] another
|
||
|
source
|
||
|
|
||
|
|
||
|
"""
|
||
|
|
||
|
data.add_table_data(
|
||
|
"test_data", row_key="param", col_key="col", data=table, extra="test_kwd"
|
||
|
)
|
||
|
|
||
|
|
||
|
def test_db():
|
||
|
# this should only be a problem with Python 2, so we need to
|
||
|
# check which version we are running under before letting the test
|
||
|
# throw the exception:
|
||
|
if sys.version_info[0] == 2:
|
||
|
with pytest.raises(TypeError):
|
||
|
# raise exception if unicode is given in ono-unicode string
|
||
|
data.add_table_data("test_data", row_key="param", col_key="col", data=u"±")
|
||
|
|
||
|
d = data.get("test_data", param="param1", col="col2", extra="test_kwd")
|
||
|
assert d == (2.2, 1.5)
|
||
|
|
||
|
d = data.get(
|
||
|
"test_data", param="param1", col=["col1", "col2", "col3"], extra="test_kwd"
|
||
|
)
|
||
|
assert d == {"col1": (15, 6.5), "col2": (2.2, 1.5), "col3": (0.87, 0.23)}
|
||
|
|
||
|
d = data.get(
|
||
|
"test_data", param="param2", col=["col1", "col2", "col3"], extra="test_kwd"
|
||
|
)
|
||
|
assert d == {"col1": 3, "col2": 5, "col3": (0.87, 0.23)}
|
||
|
|
||
|
d = data.get(
|
||
|
"test_data", param="param3", col=["col1", "col2", "col3"], extra="test_kwd"
|
||
|
)
|
||
|
assert d == {"col1": 3.4, "col2": None, "col3": 7}
|
||
|
|
||
|
s = data.get_source("test_data", param="param1", col="col2", extra="test_kwd")
|
||
|
assert "end of #2" in s
|
||
|
|
||
|
s = data.get_source("test_data", param="param2", col="col2", extra="test_kwd")
|
||
|
assert s is None
|