def add_event(request, user_id): params = request.form e = Event(title=params["title"], event_date=datetime.strptime(params["event_date"], ISO_DATE_DEF), end_date=datetime.strptime(params["end_date"], ISO_DATE_DEF), body=params["body"], location=params["location"], committee_id=params["committee_id"], facebook_link=params["facebook_link"], body_en=params["body_en"], title_en=params["title_en"], user_id=user_id) add_cols(params, e) if "header_image" in request.files: image_name = upload_image(request.files["header_image"]) e.header_image = image_name if params["tags"]: #tag the event tags = PostTag.query.filter(PostTag.id.in_(params["tags"])).all() for tag in tags: e.tags.append(tag) db.session.add(e) db.session.commit() return e
def test_creation_with_full_data_string_int(self): _now = datetime.now() event = Event( title="Inter Block Movie Night", event_type="FE", meetup_location="Root Cove", start_time=_now, block="59", floor="8", description="Let's watch a movie together.", duration_mins="120", count_attendance=True, signup_limit="30", signup_ddl=_now, archived=False, ) print(event) self.assertTrue(isinstance(event, Event)) self.assertTrue(event.title == "Inter Block Movie Night") self.assertTrue(event.event_type == "FE") self.assertTrue(event.meetup_location == "Root Cove") self.assertTrue(event.start_time == _now) self.assertTrue(event.block == "59") self.assertTrue(event.floor == "8") self.assertTrue(event.description == "Let's watch a movie together.") self.assertTrue(event.duration_mins == 120) self.assertTrue(event.count_attendance == True) self.assertTrue(event.signup_limit == 30) self.assertTrue(event.signup_ddl == _now) self.assertTrue(event.archived == False)
def test_creation_with_missing_data(self): with self.assertRaises(Exception): event = Event( title="Inter Block Movie Night", event_type="IBE", meetup_location="BLK 57, Student Lounge", )
def test_creation_with_invalid_data(self): _now = datetime.now() event = Event( title="Inter Block Movie Night", event_type="IBB", meetup_location="Root Cove", start_time=_now, block="999", floor="888", description="Let's watch a movie together.", duration_mins=0, count_attendance=True, signup_limit=-10, archived="False", ) print(event) self.assertTrue(isinstance(event, Event)) self.assertTrue(event.title == "Inter Block Movie Night") self.assertTrue(event.event_type == "MEETUP") self.assertTrue(event.meetup_location == "Root Cove") self.assertTrue(event.start_time == _now) self.assertTrue(event.block == "ANY") self.assertTrue(event.floor == "ANY") self.assertTrue(event.description == "Let's watch a movie together.") self.assertTrue(event.duration_mins == 60) self.assertTrue(event.count_attendance == True) self.assertTrue(event.signup_limit == 20) self.assertTrue(event.signup_ddl == _now) self.assertTrue(event.archived == False)
def test_uid_creation(self): event = Event( title="Inter Block Movie Night", event_type="IBE", meetup_location="BLK 57, Student Lounge", start_time=datetime.now(), ) print(event) self.assertTrue(isinstance(event, Event)) self.assertTrue(event.uid.startswith("E"))
def get_events(query_filter=None): logging.info('[SERVICE]: Getting events') events_ids = memcache.get('events_ids') if events_ids is not None: events = memcache.get_multi(events_ids) if events is not None: return events.values() else: memcache.delete('events_ids') return get_events() else: if not query_filter: events = Event.query() else: events = Event.query().filter(query_filter) events_ids = events.map(lambda event: str(event.id)) memcache.add('events_ids', events_ids, 3600) event_mapping = {} for event in events: event_mapping[str(event.id)] = event memcache.add_multi(event_mapping, 3600) return events
def test_creation_with_minimal_data(self): _now = datetime.now() event = Event( title="Inter Block Movie Night", event_type="IBE", meetup_location="BLK 57, Student Lounge", start_time=_now, ) print(event) self.assertTrue(isinstance(event, Event)) self.assertTrue(event.title == "Inter Block Movie Night") self.assertTrue(event.event_type == "IBE") self.assertTrue(event.meetup_location == "BLK 57, Student Lounge") self.assertTrue(event.start_time == _now)
def get_events(): #get query string params user_query = request.args.to_dict() #if the user supplied a query, filter page = request.args.get('page', 1, type=int) per_page = request.args.get('perPage', 20, type=int) if user_query: q = Event.query.filter_by(**user_query).paginate(page=page, per_page=per_page) else: #if user did not provide filter, just send all events scheduled_condition = [ Event.scheduled_date <= datetime.now(), Event.scheduled_date == None ] q = Event.query.filter( and_(Event.draft == False, or_(*scheduled_condition))).paginate(page=page, per_page=per_page) data = [Event.to_dict(res) for res in q.items] return jsonify({"data": data, "totalCount": q.total})
def make_news(self, data): return Event(**data)
def test_creation_with_missing_data_2(self): with self.assertRaises(Exception): event = Event( event_type="IBE", meetup_location="BLK 57, Student Lounge", )