Coverage for /home/runner/work/pycax/pycax/pycax/tables/test_tables.py: 100%
63 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-26 00:27 +0000
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-26 00:27 +0000
1"""Tests for tables module methods"""
2import requests
3import json
4import unittest
6from pycax import tables
7from pycax import hli
9def test_tables_tableid():
10 """
11 tables.tableid - test that only one value returned
12 """
13 for val in hli.HLI_SHORT:
14 res = tables.tableid(hli.return_tablename(val, "base"))
15 assert "ndarray" == res.__class__.__name__
16 assert 1 == len(res)
17 assert str == res[0].__class__
19class MyTestCase(unittest.TestCase):
20 def test_tables_tableid_exception(self):
21 self.assertRaises(ValueError, tables.tableid, "badname")
23 def test_tables_get_exception(self):
24 self.assertRaises(TypeError, tables.get, "NOSA", **{'fargs': 'a'})
27def test_tables_get():
28 """
29 tables.get - basic test for data, check type, size and other methods
30 """
31 query = tables.get("NOSA", qargs={'limit': 2})
32 assert "TablesResponse" == query.__class__.__name__
33 assert not query.data
34 assert str == query.api_url.__class__
35 assert "NOSA" == query.tablename
36 assert str == query.tableid.__class__
37 query.execute()
38 assert dict == query.data.__class__
39 assert 6 == len(query.data)
40 assert dict == query.data["records"][0].__class__
41 assert int == query.data["records"][0]["popid"].__class__
42 assert 2 == len(query.data["records"])
43 assert query.to_pandas().__class__.__name__ == "DataFrame"
45def test_dict_to_json():
46 """
47 tables.dict_to_json - basic test for structure
48 """
49 res = tables.dict_to_json({'popid': '7'})
50 assert "str" == res.__class__.__name__
51 dictlist = json.loads(res)
52 assert "list" == dictlist.__class__.__name__
53 assert "dict" == dictlist[0].__class__.__name__
54 assert 3 == len(dictlist[0])
55 dictkeys = [key for key in dictlist[0]]
56 dictvals = [dictlist[0][key] for key in dictlist[0]]
57 assert dictkeys == ['field', 'value', 'type']
58 assert dictvals == ['popid', '7', 'string']
59 res = tables.dict_to_json({'popid': [7, 8]})
60 dictlist = json.loads(res)
61 dictvals = [dictlist[0][key] for key in dictlist[0]]
62 assert "list" == dictvals[2]
63 res = tables.dict_to_json({'popid': [7, 8], 'species': 'Chinook, salmon'})
64 dictlist = json.loads(res)
65 assert 2 == len(dictlist)
67def test_tables_getdf():
68 """
69 tables.getdf - test that data frame returned
70 """
71 df = tables.getdf("NOSA", qargs={'limit': 1})
72 assert "DataFrame" == df.__class__.__name__
73 assert 1 == df.shape[0]
74 id = df['popid'][0]
75 df = hli.getdf("NOSA", qargs={'limit': 1}, fargs={'popid':id})
76 assert 1 == df.shape[0]
77 assert id == df['popid'][0]
78 df = hli.getdf("NOSA", tabletype = "base", qargs={'limit': 1})
79 assert "DataFrame" == df.__class__.__name__
80 assert 1 == df.shape[0]
81 id = df['popid'][0]
82 df = hli.getdf("NOSA", qargs={'limit': 1}, fargs={'popid':id})
83 assert 1 == df.shape[0]
84 assert id == df['popid'][0]