Exemplo n.º 1
0
    def test_fetch_empty(self):
        """Test if nothing is returned when there are no events"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2017, 1, 1)

        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2)
        events = [event for event in meetup.fetch(from_date=from_date)]

        self.assertEqual(len(events), 0)

        # Check requests
        expected = {
            'fields': [
                'event_hosts', 'featured', 'group_topics',
                'plain_text_description', 'rsvpable', 'series'
            ],
            'key': ['aaaa'],
            'order': ['updated'],
            'page': ['2'],
            'scroll': ['since:2017-01-01T00:00:00.000Z'],
            'sign': ['true'],
            'status': [
                'cancelled', 'upcoming', 'past', 'proposed', 'suggested',
                'draft'
            ]
        }

        self.assertEqual(len(http_requests), 1)
        self.assertDictEqual(http_requests[0].querystring, expected)
Exemplo n.º 2
0
    def test_fetch_empty(self):
        """Test if nothing is returned when there are no events"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2017, 1, 1)

        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2)
        events = [event for event in meetup.fetch(from_date=from_date)]

        self.assertEqual(len(events), 0)

        # Check requests
        expected = {
            'fields' : ['event_hosts', 'featured', 'group_topics',
                        'plain_text_description', 'rsvpable', 'series'],
            'key' : ['aaaa'],
            'order' : ['updated'],
            'page' : ['2'],
            'scroll' : ['since:2017-01-01T00:00:00.000Z'],
            'sign' : ['true'],
            'status' : ['cancelled', 'upcoming', 'past', 'proposed',
                         'suggested', 'draft']
        }

        self.assertEqual(len(http_requests), 1)
        self.assertDictEqual(http_requests[0].querystring, expected)
Exemplo n.º 3
0
    def test_fetch_from_date(self):
        """Test wether if fetches a set of events from the given date"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 9, 25)

        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2)
        events = [event for event in meetup.fetch(from_date=from_date)]

        expected = [('3', 'a42b7cf556c17b17f05b951e2eb5e07a7cb0a731',
                     1474842748.0, 2, 3)]

        self.assertEqual(len(events), len(expected))

        for x in range(len(events)):
            event = events[x]
            expc = expected[x]
            self.assertEqual(event['data']['id'], expc[0])
            self.assertEqual(event['uuid'], expc[1])
            self.assertEqual(event['origin'], 'https://meetup.com/')
            self.assertEqual(event['updated_on'], expc[2])
            self.assertEqual(event['category'], 'event')
            self.assertEqual(event['tag'], 'https://meetup.com/')
            self.assertEqual(len(event['data']['comments']), expc[3])
            self.assertEqual(len(event['data']['rsvps']), expc[4])

        # Check requests
        expected = [{
            'fields': [
                'event_hosts', 'featured', 'group_topics',
                'plain_text_description', 'rsvpable', 'series'
            ],
            'key': ['aaaa'],
            'order': ['updated'],
            'page': ['2'],
            'scroll': ['since:2016-09-25T00:00:00.000Z'],
            'sign': ['true'],
            'status': [
                'cancelled', 'upcoming', 'past', 'proposed', 'suggested',
                'draft'
            ]
        }, {
            'key': ['aaaa'],
            'page': ['2'],
            'sign': ['true']
        }, {
            'fields': ['attendance_status'],
            'key': ['aaaa'],
            'page': ['2'],
            'response': ['yes', 'no'],
            'sign': ['true']
        }]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
Exemplo n.º 4
0
    def test_fetch_from_date(self):
        """Test wether if fetches a set of events from the given date"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 9, 25)

        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2)
        events = [event for event in meetup.fetch(from_date=from_date)]

        expected = [('3', 'a42b7cf556c17b17f05b951e2eb5e07a7cb0a731', 1474842748.0, 2, 3)]

        self.assertEqual(len(events), len(expected))

        for x in range(len(events)):
            event = events[x]
            expc = expected[x]
            self.assertEqual(event['data']['id'], expc[0])
            self.assertEqual(event['uuid'], expc[1])
            self.assertEqual(event['origin'], 'https://meetup.com/')
            self.assertEqual(event['updated_on'], expc[2])
            self.assertEqual(event['category'], 'event')
            self.assertEqual(event['tag'], 'https://meetup.com/')
            self.assertEqual(len(event['data']['comments']), expc[3])
            self.assertEqual(len(event['data']['rsvps']), expc[4])

        # Check requests
        expected = [
            {
             'fields' : ['event_hosts', 'featured', 'group_topics',
                         'plain_text_description', 'rsvpable', 'series'],
             'key' : ['aaaa'],
             'order' : ['updated'],
             'page' : ['2'],
             'scroll' : ['since:2016-09-25T00:00:00.000Z'],
             'sign' : ['true'],
             'status' : ['cancelled', 'upcoming', 'past', 'proposed',
                         'suggested', 'draft']
            },
            {
             'key' : ['aaaa'],
             'page' : ['2'],
             'sign' : ['true']
            },
            {
             'fields' : ['attendance_status'],
             'key' : ['aaaa'],
             'page' : ['2'],
             'response' : ['yes', 'no'],
             'sign' : ['true']
            }
        ]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
Exemplo n.º 5
0
    def test_fetch_from_cache(self):
        """Test whether the cache works"""

        http_requests = setup_http_server()

        # First, we fetch the events from the server,
        # storing them in a cache
        cache = Cache(self.tmp_path)
        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2, cache=cache)
        events = [event for event in meetup.fetch()]

        self.assertEqual(len(http_requests), 8)

        # Now, we get the events from the cache.
        # The events should be the same and there won't be
        # any new request to the server
        cached_events = [event for event in meetup.fetch_from_cache()]
        self.assertEqual(len(cached_events), len(events))

        expected = [('1', '0d07fe36f994a6c78dfcf60fb73674bcf158cb5a',
                     1460065164.0, 2, 3),
                    ('2', '24b47b622eb33965676dd951b18eea7689b1d81c',
                     1465503498.0, 2, 3),
                    ('3', 'a42b7cf556c17b17f05b951e2eb5e07a7cb0a731',
                     1474842748.0, 2, 3)]

        self.assertEqual(len(cached_events), len(expected))

        for x in range(len(cached_events)):
            event = cached_events[x]
            expc = expected[x]
            self.assertEqual(event['data']['id'], expc[0])
            self.assertEqual(event['uuid'], expc[1])
            self.assertEqual(event['origin'], 'https://meetup.com/')
            self.assertEqual(event['updated_on'], expc[2])
            self.assertEqual(event['category'], 'event')
            self.assertEqual(event['tag'], 'https://meetup.com/')
            self.assertEqual(len(event['data']['comments']), expc[3])
            self.assertEqual(len(event['data']['rsvps']), expc[4])

            # Compare chached and fetched task
            self.assertDictEqual(event['data'], events[x]['data'])

        # No more requests were sent
        self.assertEqual(len(http_requests), 8)
Exemplo n.º 6
0
    def test_fetch_from_cache(self):
        """Test whether the cache works"""

        http_requests = setup_http_server()

        # First, we fetch the events from the server,
        # storing them in a cache
        cache = Cache(self.tmp_path)
        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2, cache=cache)
        events = [event for event in meetup.fetch()]

        self.assertEqual(len(http_requests), 8)

        # Now, we get the events from the cache.
        # The events should be the same and there won't be
        # any new request to the server
        cached_events = [event for event in meetup.fetch_from_cache()]
        self.assertEqual(len(cached_events), len(events))

        expected = [('1', '0d07fe36f994a6c78dfcf60fb73674bcf158cb5a', 1460065164.0, 2, 3),
                    ('2', '24b47b622eb33965676dd951b18eea7689b1d81c', 1465503498.0, 2, 3),
                    ('3', 'a42b7cf556c17b17f05b951e2eb5e07a7cb0a731', 1474842748.0, 2, 3)]

        self.assertEqual(len(cached_events), len(expected))

        for x in range(len(cached_events)):
            event = cached_events[x]
            expc = expected[x]
            self.assertEqual(event['data']['id'], expc[0])
            self.assertEqual(event['uuid'], expc[1])
            self.assertEqual(event['origin'], 'https://meetup.com/')
            self.assertEqual(event['updated_on'], expc[2])
            self.assertEqual(event['category'], 'event')
            self.assertEqual(event['tag'], 'https://meetup.com/')
            self.assertEqual(len(event['data']['comments']), expc[3])
            self.assertEqual(len(event['data']['rsvps']), expc[4])

            # Compare chached and fetched task
            self.assertDictEqual(event['data'], events[x]['data'])

        # No more requests were sent
        self.assertEqual(len(http_requests), 8)
Exemplo n.º 7
0
    def test_fetch(self):
        """Test whether it fetches a set of events"""

        http_requests = setup_http_server()

        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2)
        events = [event for event in meetup.fetch()]

        expected = [('1', '0d07fe36f994a6c78dfcf60fb73674bcf158cb5a', 1460065164.0, 2, 3),
                    ('2', '24b47b622eb33965676dd951b18eea7689b1d81c', 1465503498.0, 2, 3),
                    ('3', 'a42b7cf556c17b17f05b951e2eb5e07a7cb0a731', 1474842748.0, 2, 3)]

        self.assertEqual(len(events), len(expected))

        for x in range(len(events)):
            event = events[x]
            expc = expected[x]
            self.assertEqual(event['data']['id'], expc[0])
            self.assertEqual(event['uuid'], expc[1])
            self.assertEqual(event['origin'], 'https://meetup.com/')
            self.assertEqual(event['updated_on'], expc[2])
            self.assertEqual(event['category'], 'event')
            self.assertEqual(event['tag'], 'https://meetup.com/')
            self.assertEqual(len(event['data']['comments']), expc[3])
            self.assertEqual(len(event['data']['rsvps']), expc[4])

        # Check requests
        expected = [
            {
             'fields' : ['event_hosts', 'featured', 'group_topics',
                         'plain_text_description', 'rsvpable', 'series'],
             'key' : ['aaaa'],
             'order' : ['updated'],
             'page' : ['2'],
             'scroll' : ['since:1970-01-01T00:00:00.000Z'],
             'sign' : ['true'],
             'status' : ['cancelled', 'upcoming', 'past', 'proposed',
                         'suggested', 'draft']
            },
            {
             'key' : ['aaaa'],
             'page' : ['2'],
             'sign' : ['true']
            },
            {
             'fields' : ['attendance_status'],
             'key' : ['aaaa'],
             'page' : ['2'],
             'response' : ['yes', 'no'],
             'sign' : ['true']
            },
            {
             'key' : ['aaaa'],
             'page' : ['2'],
             'sign' : ['true']
            },
            {
             'fields' : ['attendance_status'],
             'key' : ['aaaa'],
             'page' : ['2'],
             'response' : ['yes', 'no'],
             'sign' : ['true']
            },
            {
             'key': ['aaaa'],
             'sign': ['true']
            },
            {
             'key' : ['aaaa'],
             'page' : ['2'],
             'sign' : ['true']
            },
            {
             'fields' : ['attendance_status'],
             'key' : ['aaaa'],
             'page' : ['2'],
             'response' : ['yes', 'no'],
             'sign' : ['true']
            }
        ]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
Exemplo n.º 8
0
    def test_fetch(self):
        """Test whether it fetches a set of events"""

        http_requests = setup_http_server()

        meetup = Meetup('sqlpass-es', 'aaaa', max_items=2)
        events = [event for event in meetup.fetch()]

        expected = [('1', '0d07fe36f994a6c78dfcf60fb73674bcf158cb5a',
                     1460065164.0, 2, 3),
                    ('2', '24b47b622eb33965676dd951b18eea7689b1d81c',
                     1465503498.0, 2, 3),
                    ('3', 'a42b7cf556c17b17f05b951e2eb5e07a7cb0a731',
                     1474842748.0, 2, 3)]

        self.assertEqual(len(events), len(expected))

        for x in range(len(events)):
            event = events[x]
            expc = expected[x]
            self.assertEqual(event['data']['id'], expc[0])
            self.assertEqual(event['uuid'], expc[1])
            self.assertEqual(event['origin'], 'https://meetup.com/')
            self.assertEqual(event['updated_on'], expc[2])
            self.assertEqual(event['category'], 'event')
            self.assertEqual(event['tag'], 'https://meetup.com/')
            self.assertEqual(len(event['data']['comments']), expc[3])
            self.assertEqual(len(event['data']['rsvps']), expc[4])

        # Check requests
        expected = [{
            'fields': [
                'event_hosts', 'featured', 'group_topics',
                'plain_text_description', 'rsvpable', 'series'
            ],
            'key': ['aaaa'],
            'order': ['updated'],
            'page': ['2'],
            'scroll': ['since:1970-01-01T00:00:00.000Z'],
            'sign': ['true'],
            'status': [
                'cancelled', 'upcoming', 'past', 'proposed', 'suggested',
                'draft'
            ]
        }, {
            'key': ['aaaa'],
            'page': ['2'],
            'sign': ['true']
        }, {
            'fields': ['attendance_status'],
            'key': ['aaaa'],
            'page': ['2'],
            'response': ['yes', 'no'],
            'sign': ['true']
        }, {
            'key': ['aaaa'],
            'page': ['2'],
            'sign': ['true']
        }, {
            'fields': ['attendance_status'],
            'key': ['aaaa'],
            'page': ['2'],
            'response': ['yes', 'no'],
            'sign': ['true']
        }, {
            'key': ['aaaa'],
            'sign': ['true']
        }, {
            'key': ['aaaa'],
            'page': ['2'],
            'sign': ['true']
        }, {
            'fields': ['attendance_status'],
            'key': ['aaaa'],
            'page': ['2'],
            'response': ['yes', 'no'],
            'sign': ['true']
        }]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])