Esempio n. 1
0
    def test_events_query_filter(self):
        org = OrganizationFactory(type="Brigade")
        another_org = OrganizationFactory(type="Code for All")
        awesome_event = EventFactory(name="Awesome event")
        sad_event = EventFactory(name="Sad event", description="sad stuff will happen")

        awesome_event.organization = org
        sad_event.organization = another_org

        db.session.commit()

        # Make sure total number of stories is 2
        response = self.app.get('/api/events')
        response = json.loads(response.data)
        self.assertEqual(response['total'], 2)

        # Filter by name should return only 1
        response = self.app.get('/api/events?name=awesome')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response['total'], 1)
        self.assertEqual(response['objects'][0]['name'], "Awesome event")

        # Filter by description should return only 1
        response = self.app.get('/api/events?description=sad%20stuff')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response['total'], 1)
        self.assertEqual(response['objects'][0]['name'], "Sad event")

        # Filter by deep searching organization type should return 1
        response = self.app.get('/api/events?organization_type=brigade')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response['total'], 1)
        self.assertEqual(response['objects'][0]['name'], "Awesome event")
Esempio n. 2
0
    def test_underscores_and_spaces(self):
        organization = OrganizationFactory(name="Code for America")
        db.session.add(organization)
        db.session.commit()

        response = self.app.get('/api/organizations/Code for America')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        scheme, netloc, path, _, _, _ = urlparse(response["all_events"])
        self.assertTrue("-" in path)
        self.assertFalse("_" in path)
        self.assertFalse(" " in path)
        scheme, netloc, path, _, _, _ = urlparse(response["all_stories"])
        self.assertTrue("-" in path)
        self.assertFalse("_" in path)
        self.assertFalse(" " in path)
        scheme, netloc, path, _, _, _ = urlparse(response["all_projects"])
        self.assertTrue("-" in path)
        self.assertFalse("_" in path)
        self.assertFalse(" " in path)

        response = self.app.get('/api/organizations/Code-for-America')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["name"], "Code for America")

        response = self.app.get('/api/organizations/Code_for_America')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["name"], "Code for America")

        project = ProjectFactory(organization_name="Code for America")
        db.session.add(project)
        db.session.commit()

        response = self.app.get('/api/organizations/Code_for_America/projects')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["objects"][0]["organization_name"],
                         "Code for America")

        response = self.app.get('/api/organizations/Code_for_America/projects')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["objects"][0]["organization_name"],
                         "Code for America")

        event = EventFactory(organization_name="Code for America")
        db.session.add(event)
        db.session.commit()

        response = self.app.get('/api/organizations/Code for America/events')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["objects"][0]["organization_name"],
                         "Code for America")

        response = self.app.get('/api/organizations/Code_for_America/events')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["objects"][0]["organization_name"],
                         "Code for America")

        story = StoryFactory(organization_name="Code for America")
        db.session.add(story)
        db.session.commit()

        response = self.app.get('/api/organizations/Code for America/stories')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["objects"][0]["organization_name"],
                         "Code for America")

        response = self.app.get('/api/organizations/Code_for_America/stories')
        self.assertEqual(response.status_code, 200)
        response = json.loads(response.data)
        self.assertEqual(response["objects"][0]["organization_name"],
                         "Code for America")
Esempio n. 3
0
 def add_event(self, event_type, score):
     self.events[event_type] = EventFactory.create(event_type, score)
Esempio n. 4
0
    def test_all_upcoming_events_with_params(self):
        '''
        Test the /events/upcoming_events end point with params.
        '''
        # World Cup teams
        organization = OrganizationFactory(name='USA USA USA',
                                           type='Code for All')
        db.session.flush()

        # Create multiple events, some in the future, one in the past
        EventFactory(organization_name=organization.name,
                     name="Past Event",
                     start_time_notz=datetime.now() - timedelta(1000))
        EventFactory(organization_name=organization.name,
                     name="Event One",
                     start_time_notz=datetime.now() + timedelta(10))
        EventFactory(organization_name=organization.name,
                     name="Event Four",
                     start_time_notz=datetime.now() + timedelta(100))
        EventFactory(organization_name=organization.name,
                     name="Event Seven",
                     start_time_notz=datetime.now() + timedelta(1000))
        db.session.flush()

        # World Cup teams
        organization = OrganizationFactory(name='Brazil')
        db.session.flush()

        # Create multiple events, some in the future, one in the past
        EventFactory(organization_name=organization.name,
                     name="Past Event",
                     start_time_notz=datetime.now() - timedelta(2000))
        EventFactory(organization_name=organization.name,
                     name="Event Two",
                     start_time_notz=datetime.now() + timedelta(20))
        EventFactory(organization_name=organization.name,
                     name="Event Five",
                     start_time_notz=datetime.now() + timedelta(200))
        EventFactory(organization_name=organization.name,
                     name="Event Eight",
                     start_time_notz=datetime.now() + timedelta(2000))
        db.session.flush()

        # World Cup teams
        organization = OrganizationFactory(name='GER', type='Code for All')
        db.session.flush()

        # Create multiple events, some in the future, one in the past
        EventFactory(organization_name=organization.name,
                     name="Past Event",
                     start_time_notz=datetime.now() - timedelta(3000))
        EventFactory(organization_name=organization.name,
                     name="Event Three",
                     start_time_notz=datetime.now() + timedelta(30))
        EventFactory(organization_name=organization.name,
                     name="Event Six",
                     start_time_notz=datetime.now() + timedelta(300))
        EventFactory(organization_name=organization.name,
                     name="Event Nine",
                     start_time_notz=datetime.now() + timedelta(3000))
        db.session.flush()

        response = self.app.get(
            '/api/events/upcoming_events?organization_type=Code for All')
        response_json = json.loads(response.data)

        self.assertEqual(len(response_json['objects']), 6)
        self.assertEqual(response_json['objects'][0]['name'], "Event One")
        self.assertEqual(response_json['objects'][1]['name'], "Event Three")
        self.assertEqual(response_json['objects'][5]['name'], "Event Nine")