def test_createEventValues(self): event0 = event.createEvent("cool hat", 1, event.EventType.NOTE) self.assertEqual(event0.name, "cool hat") event1 = event.createEvent("cooler hat", 1, event.EventType.REMINDER, description="A very cool hat", start_time=datetime.datetime.utcnow()) self.assertEqual(event1.description, "A very cool hat") event2 = event.createEvent("Best hat", 1, event.EventType.NOTE, parent=1) self.assertEqual(event2.parent, event.Event.query.filter_by(id=1).first())
def create_or_edit(): """Create or update an event. If id is passed as a a query parameter then update the event corresponding to that query parameter. """ error = None if request.method == 'POST': id = request.form.get('id') id = int(id) if id else None # Edit or create the event based on whether we have an id and also # the type of event that we have. name = request.form.get('name') owner = getUser(current_username()).id event_type = EventType(int(request.form.get('event_type'))) description = request.form['description'] startTime = momentToPyDatetime( request.form['start_time'] ) if event_type == EventType.EVENT or event_type == EventType.REMINDER else None endTime = momentToPyDatetime( request.form['end_time'] ) if event_type == EventType.EVENT else None password = request.form[ 'event_password'] if event_type == event_type.ENCRYPTED else None if id: editEvent(id, name=name, owner=owner, event_type=event_type, description=description, start_time=startTime, end_time=endTime, password=password) else: createEvent(name=name, owner=owner, event_type=event_type, description=description, start_time=startTime, end_time=endTime, password=password) return redirect(url_for('events.index')) # Get an event if we are editing an event id = request.args.get('id') event = None if id: event = getEventById(int(id)) if event.event_type == EventType.ENCRYPTED and not checkCachedEncrypted( event): #If this encrypted event hasn't had its password entered already, then send back to event page return redirect(url_for('events.index')) return render_template('events_create.html', event=event, username=current_username(), EventType=EventType, error=error, checkCachedEncrypted=checkCachedEncrypted)
def test_remove(self): event0 = event.createEvent("quick Note", 1, event.EventType.NOTE) event.removeEvent(event0) self.assertIsNone(event.Event.query.filter_by(id=event0.id).first()) event0 = event.createEvent("quick Note2", 1, event.EventType.NOTE) event.removeEvent(event0.id) self.assertIsNone(event.Event.query.filter_by(id=event0.id).first()) event.removeEvent(event.Event.query.filter_by(name="Tie my shoe").first()) self.assertIsNone(event.Event.query.filter_by(name="Raid Area 51").first())
def test_edit(self): event0 = event.createEvent("quick Note", 2, event.EventType.NOTE) updatedEvent = event.editEvent(event0, name="new name") self.assertEqual(event0.id, updatedEvent.id) self.assertEqual(updatedEvent.name, "new name") self.assertRaises(ValueError, lambda: event.editEvent(event0, name="")) event0 = event.createEvent("secrete", 2, event.EventType.ENCRYPTED, description="stuff and thigns", password="******") self.assertRaises(TypeError, lambda: event.editEvent(event0, description="ahh")) event0 = event.editEvent(event0, description="ahh", password="******") self.assertEqual("ahh", event.decrypt(event0.description, "hmmm"))
def test_createEventRanges(self): self.assertRaises( ValueError, lambda: event.createEvent(None, 1, event.EventType.NOTE)) self.assertRaises( ValueError, lambda: event.createEvent("1" * 61, 1, event.EventType.NOTE)) self.assertRaises( ValueError, lambda: event.createEvent("hi", None, event.EventType.NOTE)) self.assertRaises(ValueError, lambda: event.createEvent("hi", 1, 12)) self.assertRaises( ValueError, lambda: event.createEvent( "hi", 1, event.EventType.NOTE, parent=50))
def generatePopulateDB(): generateDB() user.addUser(username="******", password="******", name="name", email="*****@*****.**") user.addUser(username="******", password="******", name="testname") user.addUser(username="******", password="******", name="Jeff jeff", email="*****@*****.**") user.addUser(username="******", password="******") event.createEvent(name="Wake up", owner=user.getUser("test").id, event_type=event.EventType.REMINDER, start_time=datetime.datetime.now()) event.createEvent(name="Rocks", owner=user.getUser("Jeff").id, description="Granit, Bassalt, Quartz", event_type=event.EventType.NOTE) event.createEvent(name="Short party", owner=user.getUser("username").id, event_type=event.EventType.EVENT, start_time=datetime.datetime.now(), end_time=datetime.datetime.now() + datetime.timedelta(hours=3)) event.createEvent( name="Secrets", owner=user.getUser("test").id, event_type=event.EventType.ENCRYPTED, password="******", description= "Some passwords, SSNs, creditcard numbers, and otherthings you shouldn't trust this app with" ) event.createPage(name="test page", owner=user.getUser("test"), description="This is a test page") event.createPage(name="test page 2", owner=user.getUser("test")) event.createPage(name="Jeffs stuff", owner=user.getUser("Jeff")) page1 = event.createPage(name="more thigns", owner=user.getUser("username")) event.createEvent(name="its on a page", owner=user.getUser("username").id, event_type=event.EventType.NOTE, page=page1)
def test_removeUser(self): testPerson = user.User.query.filter_by(username="******").first() user.removeUser(testPerson) self.assertIsNone(user.User.query.filter_by(username="******").first()) #Test remove by User object self.assertIsNotNone(user.User.query.filter_by(username="******").first()) #Ensure random other users where not deleted user.removeUser("epicUsername69") self.assertIsNone(user.User.query.filter_by(username="******").first()) #Test remove by username testPerson = user.User.query.filter_by(username="******").first() testEvent = event.createEvent("testEvent", testPerson.id, event.EventType.NOTE) self.assertIsNotNone(event.Event.query.filter_by(owner_id=testEvent.id).first()) user.removeUser(testPerson.id) self.assertIsNone(user.User.query.filter_by(username="******").first()) #Test remove by id self.assertIsNone(event.Event.query.filter_by(id=testEvent.id).first()) user.removeUser(testPerson.id) #Make sure error is not thrown for non existent user
def test_findByUser(self): event0 = event.createEvent("quick Note", 2, event.EventType.NOTE) self.assertEqual(len(event.getEventByOwner(2)), 1) self.assertEqual(len(event.getEventByOwner(user.getUser(1))), 2)
def test_findById(self): event0 = event.createEvent("quick Note", 1, event.EventType.NOTE) self.assertEqual(event0, event.getEventById(event0.id))
def test_createEventTypes(self): event0 = event.createEvent("cool hat", 1, event.EventType.NOTE) self.assertEqual(event0.name, "cool hat") self.assertRaises( ValueError, lambda: event.createEvent("hi", 1, event.EventType.NOTE, start_time=datetime.datetime.utcnow())) event0 = event.createEvent("This is a thing", 1, event.EventType.ENCRYPTED, description="Hidden text", password="******") self.assertNotEqual(event0.description, "Hidden text") self.assertEqual(event.decrypt(event0.description, "mushSecure"), "Hidden text") self.assertRaises( TypeError, lambda: event.createEvent("encrypted", 1, event. EventType.ENCRYPTED)) event0 = event.createEvent("event", 1, event.EventType.EVENT, start_time=datetime.datetime.utcnow(), end_time=datetime.datetime.utcnow()) self.assertEqual(event0.name, "event") self.assertRaises( ValueError, lambda: event.createEvent("event", 1, event.EventType.EVENT, start_time=datetime.datetime.utcnow())) self.assertRaises( ValueError, lambda: event.createEvent("event", 1, event.EventType.EVENT, end_time=datetime.datetime.utcnow())) self.assertRaises( ValueError, lambda: event.createEvent("event", 1, event.EventType.EVENT)) event0 = event.createEvent("REMINDER", 1, event.EventType.REMINDER, start_time=datetime.datetime.utcnow()) self.assertEqual(event0.name, "REMINDER") self.assertRaises( ValueError, lambda: event.createEvent("REMINDER", 1, event.EventType.REMINDER, start_time=datetime.datetime.utcnow(), end_time=datetime.datetime.utcnow())) self.assertRaises( ValueError, lambda: event.createEvent("REMINDER", 1, event.EventType.REMINDER, end_time=datetime.datetime.utcnow())) self.assertRaises( ValueError, lambda: event.createEvent("REMINDER", 1, event.EventType.REMINDER))
def test_getAllEvents(self): event0 = event.createEvent("a fe eafeafeajjjjjjjjiiiiiiiifeafeaf", 2, event.EventType.NOTE) event1 = event.createEvent("ahhhh", 2, event.EventType.NOTE, description="fijeoijfeajjjfe;jseoi") self.assertEqual(len(event.getAllEvents("feajjj")), 2)