class TestWorldPopClass(unittest.TestCase):
    '''
  Tests for the WorldPop class.

  '''

    def setUp(self):
        self.keys = ['instance', 'success', 'data', 'key']
        self.wp = WorldPop()
        self.basic_info = WorldPop().info()

    def test_class_information_is_dictionary(self):
        '''
    Class method info() returns dictionary.

    '''
        result = self.basic_info
        self.assertIs(type(result), dict)

    def test_class_information_has_right_keys(self):
        '''
    Class method info() has right keys.

    '''
        result = self.basic_info
        for key in self.keys:
            self.assertIn(key, result.keys())

    def test_class_information_success_is_boolean(self):
        '''
    Class method info() returns boolean.

    '''
        result = self.basic_info
        self.assertIs(type(result['success']), bool)

    def test_class_worldpop_successfully_receives_data(self):
        '''
    WorldPop class successfully receives JSON data.

    '''
        result = self.basic_info
        print(result)
        self.assertIs(type(result['data']), dict)

    def test_dataset_method_returns_a_list(self):
        '''
    Tests that the datasets() method returns a list.

    '''
        result = self.wp.datasets()
        self.assertIs(type(result), list)
class TestWorldPopClass(unittest.TestCase):
    '''
  Tests for the WorldPop class.

  '''
    def setUp(self):
        self.keys = ['instance', 'success', 'data', 'key']
        self.wp = WorldPop()
        self.basic_info = WorldPop().info()

    def test_class_information_is_dictionary(self):
        '''
    Class method info() returns dictionary.

    '''
        result = self.basic_info
        self.assertIs(type(result), dict)

    def test_class_information_has_right_keys(self):
        '''
    Class method info() has right keys.

    '''
        result = self.basic_info
        for key in self.keys:
            self.assertIn(key, result.keys())

    def test_class_information_success_is_boolean(self):
        '''
    Class method info() returns boolean.

    '''
        result = self.basic_info
        self.assertIs(type(result['success']), bool)

    def test_class_worldpop_successfully_receives_data(self):
        '''
    WorldPop class successfully receives JSON data.

    '''
        result = self.basic_info
        print(result)
        self.assertIs(type(result['data']), dict)

    def test_dataset_method_returns_a_list(self):
        '''
    Tests that the datasets() method returns a list.

    '''
        result = self.wp.datasets()
        self.assertIs(type(result), list)
def main():
    '''
    Program wrapper.

    '''
    contents = WorldPop().info()

    #
    #  Collects data and organizes
    #  in lists and dictionaries.
    #
    datasets = []
    resources = []
    for dataset in contents['data']['worldPopData']:
        d = parse_dataset(dataset)
        if d is not None:
            datasets.append(d['metadata'])
            resources.append(d['resource'])

    export_json(datasets, 'data/datasets.json')
    export_json(resources, 'data/resources.json')
    print('%s Total datasets downloaded %s' % (item('success'), str(len(datasets))))
 def setUp(self):
     self.keys = ['instance', 'success', 'data', 'key']
     self.wp = WorldPop()
     self.basic_info = WorldPop().info()
 def setUp(self):
     self.keys = ['instance', 'success', 'data', 'key']
     self.wp = WorldPop()
     self.basic_info = WorldPop().info()