Source code for publicdata.census.api.test.test_censusapi
import unittest
import pandas as pd
import numpy as np
from rowgenerators.appurl import parse_app_url
from publicdata.census.api.censusapi import CensusApi
from publicdata.census.api.url import CensusApiUrl
from hashlib import sha256
[docs]def test_data(*paths):
from os.path import dirname, join, abspath
return abspath(join(dirname(abspath(__file__)), 'test_data', *paths))
[docs]class BasicTests(unittest.TestCase):
[docs] def test_basic(self):
u = CensusApiUrl('censusapi://ACSST1Y2018/state:01/county:*#NAME,S2001_C06_007E')
self.assertEqual('censusapi',u.proto)
self.assertIsInstance(u, CensusApiUrl)
dataset_id, in_spec, for_spec = u.path.split('/')
if not dataset_id: # The url has a :// in it
dataset_id = u.netloc
self.assertEqual('ACSST1Y2018', dataset_id)
self.assertEqual('state:01', in_spec)
self.assertEqual('county:*', for_spec)
m = sha256()
# Iterate and check the result.
for row in u.generator:
if row:
m.update((' '.join(str(e) for e in row)).encode('utf8'))
self.assertEqual('1647c540edc0b03e5e37bef0b4cef34e5e57384a32996437ac8e1dbcba2ecc4a',
m.hexdigest())
m = sha256()
for e in list(u.dataframe.NAME):
m.update(e.encode('utf8') )
self.assertEqual('52e616c47998a796921a8987cde8d5b466000557cea6e1fef9fa7f960a504ed7',
m.hexdigest())
[docs] def test_url_entrypoint(self):
m = sha256()
u = parse_app_url('censusapi://ACSST1Y2018/state:01/county:*#NAME,S2001_C06_007E')
# Iterate and check the result.
for row in u.generator:
if row:
m.update((' '.join(str(e) for e in row)).encode('utf8'))
self.assertEqual('1647c540edc0b03e5e37bef0b4cef34e5e57384a32996437ac8e1dbcba2ecc4a',
m.hexdigest())
if __name__ == '__main__':
unittest.main()