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")
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")
def add_event(self, event_type, score): self.events[event_type] = EventFactory.create(event_type, score)
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")