class TestSimulation(unittest.TestCase): def setUp(self): self.user_handler = UserHandler() def test_format_user_followers_entry_returns_user_followers_list(self): entry = 'Ward follows Martin, Alan' result = self.user_handler.format_user_followers_entry(entry) expected_result = ('Ward', ['Martin', 'Alan']) assert result == expected_result def test_update_empty_user_followers_mapping_returns_user_and_followers_tuple( self): user_followers = ('Ward', ['Martin', 'Alan']) result = self.user_handler.update_user_followers_mapping( {}, user_followers) expected_result = ('Ward', {'Martin', 'Alan'}) assert result == expected_result def test_update_user_followers_mapping_returns_user_and_updated_followers_tuple( self): user_followers = ('Ward', ['Martin', 'Alan']) result = self.user_handler.update_user_followers_mapping( {'Ward': {'Martin'}}, user_followers) expected_result = ('Ward', {'Martin', 'Alan'}) assert result == expected_result def test_get_new_users_returns_new_users_obtained_from_entry(self): user_followers = ('Ward', ['Martin', 'Alan']) result = self.user_handler.get_new_users(set(), user_followers) expected_result = {'Ward', 'Martin', 'Alan'} assert result == expected_result
def get_user_followers_mapping(self, user_filename): '''Get mapping of users to the users they follow. ''' user_handler = UserHandler() user_followers_mapping = {} try: with open(user_filename, 'r') as user_file: for entry in user_file: entry = user_handler.format_user_followers_entry(entry) user_followers = user_handler.update_user_followers_mapping( user_followers_mapping, entry) user_followers_mapping[ user_followers[0]] = user_followers[1] return user_followers_mapping except IOError: print('The file cannot be opened.') except FormatError: print('Tweet file entry incorrectly formatted')