Ejemplo n.º 1
0
 def __friendship_test(cls, new_friend: User) -> bool:
     description = new_friend.__getattribute__("description")
     red_flags = [r"anti.?vax"]
     if cls.__search(description, red_flags) > 0:
         return False
     key_term = r"guinea.?pig"
     green_flags = [key_term]
     return cls.__search_string(key_term, new_friend.__getattribute__("name")) or \
         cls.__search_string(key_term, new_friend.__getattribute__("screen_name")) or \
         cls.__search(description, green_flags) > 0
Ejemplo n.º 2
0
 def getAllTweets(self, since_id):
     tweets = []
     for id in range(10):
         tweet = tweepy.Status()
         tweet.id = id
         tweet.user = User()
         tweet.user.name = "User-" + str(id)
         tweet.text = str(id)
         tweet.in_reply_to_status_id = None
         tweets.append(tweet)
     return tweets
Ejemplo n.º 3
0
    def get_all_comments(self, since_id):
        print("from mock getTweets")
        tweets = []

        tweet = tweepy.Status()
        tweet.id = since_id
        tweet.user = User()
        tweet.user.name = "User-" + str(tweet.id)
        tweet.in_reply_to_status_id = since_id - 1

        tweets.append(tweet)

        tweet = tweepy.Status()
        tweet.id = since_id + 1
        tweet.user = User()
        tweet.user.name = "User-" + str(tweet.id)
        tweet.in_reply_to_status_id = since_id - 2

        tweets.append(tweet)

        return tweets
Ejemplo n.º 4
0
    def on_data(self, data):
        if not data:
            return
        json_data = json.loads(data)
        api = self.__api

        if not isinstance(json_data, dict):
            return

        if 'event' in json_data:
            if json_data['event'] == 'follow':
                target = User.parse(api, json_data["target"])
                source = User.parse(api, json_data["source"])
                if self.on_follow(target, source) is False:
                    return False
            elif json_data['event'] == 'favorite':
                target = Status.parse(api, json_data['target_object'])
                source = User.parse(api, json_data['source'])
                if self.on_favorite(target, source) is False:
                    return False
            elif json_data['event'] == 'unfavorite':
                target = Status.parse(api, json_data['target_object'])
                source = User.parse(api, json_data['source'])
                if self.on_unfavorite(target, source) is False:
                    return False
        elif 'delete' in json_data:
            delete = json_data['delete']['status']
            if self.on_delete(delete['id'], delete['user_id']) is False:
                return False
        elif 'in_reply_to_status_id' in json_data:
            status = Status.parse(api, json_data)
            if self.on_status(status) is False:
                return False
        elif 'limit' in json_data:
            if self.on_limit(json_data['limit']['track']) is False:
                return False
Ejemplo n.º 5
0
    def on_data(self, data):
        if not data:
            return
        json_data = json.loads(data)
        api = self.__api
        
        if not isinstance(json_data, dict):
            return

        if 'event' in json_data:
            if json_data['event']=='follow':
                target = User.parse(api, json_data["target"])
                source = User.parse(api, json_data["source"])
                if self.on_follow(target, source) is False:
                    return False
            elif json_data['event']=='favorite':
                target = Status.parse(api, json_data['target_object'])
                source = User.parse(api, json_data['source'])
                if self.on_favorite(target, source) is False:
                    return False
            elif json_data['event']=='unfavorite':
                target = Status.parse(api, json_data['target_object'])
                source = User.parse(api, json_data['source'])
                if self.on_unfavorite(target, source) is False:
                    return False
        elif 'delete' in json_data:
            delete = json_data['delete']['status']
            if self.on_delete(delete['id'], delete['user_id']) is False:
                return False
        elif 'in_reply_to_status_id' in json_data:
            status = Status.parse(api, json_data)
            if self.on_status(status) is False:
                return False
        elif 'limit' in json_data:
            if self.on_limit(json_data['limit']['track']) is False:
                return False
    def test_integrated_enqueue_followers(
        self,
        mock_cursor,
        people_to_follow,
        expected_queue_values,
        mocked_tweepy,
        test_client,
        mock_sqs_resource,
        mock_db,
        mock_message_body_sent_to_process_queue,
        all_queues,
    ):
        queues = all_queues
        stubbed_now_queue = queues[0]
        stubbed_later_queue = queues[1]

        mocked_queues = patch(
            "app.queues",
            return_value=all_queues,
        )

        mocked_api = patch("app.reconstruct_twitter_api", return_value=mocked_tweepy)

        to_follow = [User(api=mocked_api) for i in range(people_to_follow)]
        for i, u in enumerate(to_follow):
            u.id_str = i
        mock_cursor.return_value.items.return_value = to_follow
        with mocked_api, mocked_queues:
            test_client.lambda_.invoke(
                "enqueue_follows",
                test_client.events.generate_sqs_event(
                    message_bodies=[mock_message_body_sent_to_process_queue],
                    queue_name="process",
                ),
            )
            assert stubbed_later_queue.attributes.get(
                "ApproximateNumberOfMessages"
            ) == str(expected_queue_values[0])
            assert stubbed_now_queue.attributes.get(
                "ApproximateNumberOfMessages"
            ) == str(expected_queue_values[1])
Ejemplo n.º 7
0
def twitter_user():
    user = User()
    user.screen_name = "user_name"
    return user
def _create_sender():
    user_sender = User()
    user_sender_dict = dict(
        _api=api,
        follow_request_sent=False,
        profile_use_background_image=True,
        _json={
            'follow_request_sent': False,
            'profile_use_background_image': True,
            'profile_text_color': '333333',
            'default_profile_image': False,
            'id': 1411050992,
            'profile_background_image_url_https':
            'https://abs.twimg.com/images/themes/theme1/bg.png',
            'verified': False,
            'profile_location': None,
            'profile_image_url_https':
            'https://pbs.twimg.com/profile_images/468781442852339712/69CJihsO_normal.jpeg',
            'profile_sidebar_fill_color': 'DDEEF6',
            'entities': {
                'url': {
                    'urls': [{
                        'url': 'http://t.co/zo4nXhS2Fu',
                        'indices': [0, 22],
                        'expanded_url': 'http://www.web.com',
                        'display_url': 'web.com'
                    }]
                },
                'description': {
                    'urls': []
                }
            },
            'followers_count': 10,
            'profile_sidebar_border_color': 'C0DEED',
            'id_str': '1411050992',
            'profile_background_color': 'C0DEED',
            'listed_count': 0,
            'is_translation_enabled': False,
            'utc_offset': None,
            'statuses_count': 3113,
            'description': 'Teacher',
            'friends_count': 13,
            'location': 'San Francisco',
            'profile_link_color': '0084B4',
            'profile_image_url':
            'http://pbs.twimg.com/profile_images/468781442852339712/69CJihsO_normal.jpeg',
            'following': False,
            'geo_enabled': False,
            'profile_background_image_url':
            'http://abs.twimg.com/images/themes/theme1/bg.png',
            'name': 'user1_solariat',
            'lang': 'en',
            'profile_background_tile': False,
            'favourites_count': 1,
            'screen_name': 'user1_solariat',
            'notifications': False,
            'url': 'http://t.co/zo4nXhS2Fu',
            'created_at': 'Tue May 07 19:35:50 +0000 2013',
            'contributors_enabled': False,
            'time_zone': None,
            'protected': False,
            'default_profile': True,
            'is_translator': False
        },
        time_zone=None,
        id=1411050992,
        verified=False,
        profile_location=None,
        profile_image_url_https=
        'https://pbs.twimg.com/profile_images/468781442852339712/69CJihsO_normal.jpeg',
        profile_sidebar_fill_color='DDEEF6',
        is_translator=False,
        geo_enabled=False,
        entities={
            'url': {
                'urls': [{
                    'url': 'http://t.co/zo4nXhS2Fu',
                    'indices': [0, 22],
                    'expanded_url': 'http://www.web.com',
                    'display_url': 'web.com'
                }]
            },
            'description': {
                'urls': []
            }
        },
        followers_count=10,
        protected=False,
        id_str='1411050992',
        default_profile_image=False,
        listed_count=0,
        lang='en',
        utc_offset=None,
        statuses_count=3113,
        description='Teacher',
        friends_count=13,
        profile_link_color='0084B4',
        profile_image_url=
        'http://pbs.twimg.com/profile_images/468781442852339712/69CJihsO_normal.jpeg',
        notifications=False,
        favourites_count=1,
        profile_background_image_url_https=
        'https://abs.twimg.com/images/themes/theme1/bg.png',
        profile_background_color='C0DEED',
        profile_background_image_url=
        'http://abs.twimg.com/images/themes/theme1/bg.png',
        screen_name='user1_solariat',
        is_translation_enabled=False,
        profile_background_tile=False,
        profile_text_color='333333',
        name='user1_solariat',
        url='http://t.co/zo4nXhS2Fu',
        created_at=datetime.datetime(2013, 5, 7, 19, 35, 50),
        contributors_enabled=False,
        location='San Francisco',
        profile_sidebar_border_color='C0DEED',
        default_profile=True,
        following=False)
    for key, val in user_sender_dict.iteritems():
        setattr(user_sender, key, val)
    return user_sender
def _create_receiver():
    user_reciever = User()
    user_receiver_dict = dict(
        _api=api,
        follow_request_sent=False,
        profile_use_background_image=True,
        _json={
            'follow_request_sent': False,
            'profile_use_background_image': True,
            'profile_text_color': '634047',
            'default_profile_image': False,
            'id': 1411081099,
            'profile_background_image_url_https':
            'https://abs.twimg.com/images/themes/theme3/bg.gif',
            'verified': False,
            'profile_location': None,
            'profile_image_url_https':
            'https://pbs.twimg.com/profile_images/378800000614919360/cd40847077aabbaae141ad352af91f5d_normal.jpeg',
            'profile_sidebar_fill_color': 'E3E2DE',
            'entities': {
                'url': {
                    'urls': [{
                        'url': 'http://t.co/5YkGQhfD1C',
                        'indices': [0, 22],
                        'expanded_url': 'http://www.testsite.com',
                        'display_url': 'testsite.com'
                    }]
                },
                'description': {
                    'urls': []
                }
            },
            'followers_count': 7,
            'profile_sidebar_border_color': 'D3D2CF',
            'id_str': '1411081099',
            'profile_background_color': 'EDECE9',
            'listed_count': 0,
            'is_translation_enabled': False,
            'utc_offset': None,
            'statuses_count': 1514,
            'description': '',
            'friends_count': 5,
            'location': 'Bay Area',
            'profile_link_color': '088253',
            'profile_image_url':
            'http://pbs.twimg.com/profile_images/378800000614919360/cd40847077aabbaae141ad352af91f5d_normal.jpeg',
            'following': False,
            'geo_enabled': False,
            'profile_background_image_url':
            'http://abs.twimg.com/images/themes/theme3/bg.gif',
            'name': 'user2_solariat',
            'lang': 'en',
            'profile_background_tile': False,
            'favourites_count': 0,
            'screen_name': 'user2_solariat',
            'notifications': False,
            'url': 'http://t.co/5YkGQhfD1C',
            'created_at': 'Tue May 07 19:45:31 +0000 2013',
            'contributors_enabled': False,
            'time_zone': None,
            'protected': False,
            'default_profile': False,
            'is_translator': False
        },
        time_zone=None,
        id=1411081099,
        verified=False,
        profile_location=None,
        profile_image_url_https=
        'https://pbs.twimg.com/profile_images/378800000614919360/cd40847077aabbaae141ad352af91f5d_normal.jpeg',
        profile_sidebar_fill_color='E3E2DE',
        is_translator=False,
        geo_enabled=False,
        entities={
            'url': {
                'urls': [{
                    'url': 'http://t.co/5YkGQhfD1C',
                    'indices': [0, 22],
                    'expanded_url': 'http://www.testsite.com',
                    'display_url': 'testsite.com'
                }]
            },
            'description': {
                'urls': []
            }
        },
        followers_count=7,
        protected=False,
        id_str='1411081099',
        default_profile_image=False,
        listed_count=0,
        lang='en',
        utc_offset=None,
        statuses_count=1514,
        description='',
        friends_count=5,
        profile_link_color='088253',
        profile_image_url=
        'http://pbs.twimg.com/profile_images/378800000614919360/cd40847077aabbaae141ad352af91f5d_normal.jpeg',
        notifications=False,
        favourites_count=0,
        profile_background_image_url_https=
        'https://abs.twimg.com/images/themes/theme3/bg.gif',
        profile_background_color='EDECE9',
        profile_background_image_url=
        'http://abs.twimg.com/images/themes/theme3/bg.gif',
        screen_name='user2_solariat',
        is_translation_enabled=False,
        profile_background_tile=False,
        profile_text_color='634047',
        name='user2_solariat',
        url='http://t.co/5YkGQhfD1C',
        created_at=datetime.datetime(2013, 5, 7, 19, 45, 31),
        contributors_enabled=False,
        location='Bay Area',
        profile_sidebar_border_color='D3D2CF',
        default_profile=False,
        following=False)
    for key, val in user_receiver_dict.iteritems():
        setattr(user_reciever, key, val)
    return user_reciever
Ejemplo n.º 10
0
 def generate_mocked_user(user_id: str):
     u = User(api=mocked_api)
     u.id_str = user_id
     return u