示例#1
0
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
示例#2
0
    def get_users(self, user_filename):
        '''Get complete list of all users.
        '''
        users = set()
        user_handler = UserHandler()
        try:
            with open(user_filename, 'r') as user_file:
                for entry in user_file:
                    entry = user_handler.format_user_followers_entry(entry)
                    new_users = user_handler.get_new_users(users, entry)
                    users.update(new_users)
                return users

        except IOError:
            print('The file cannot be opened.')
        except FormatError:
            print('Tweet file entry incorrectly formatted')
示例#3
0
 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')