def POST(self): message = cherrypy.request.json.get('message', None) name = cherrypy.request.json.get('name', None) auth_token = cherrypy.request.headers.get('Http-Auth', None) if auth_token != token: raise cherrypy.HTTPError(401, "Unauthorized") elif not message: raise cherrypy.HTTPError(422, "Message is missing") elif not name: raise cherrypy.HTTPError(422, "Name is missing") elif name not in allowed_metadata: raise cherrypy.HTTPError(422, name + " is not an allowed metadata") else: extractor = MetadataExtractor(message, [name]) return extractor.perform()
def test_date_yesterday(self): self.assertEqual(MetadataExtractor('il y avait quoi au ciné hier ?', ['date']).perform()['timestamp'], 1467158400.0)
def test_date_wrong_syntax(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné lundi 2juin ?', ['date']).perform()['timestamp'], 1464825600.0)
def test_date_tomorrow(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné demain ?', ['date']).perform()['timestamp'], 1467331200.0)
def test_date_today(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné aujourd\'hui ?', ['date']).perform()['timestamp'], 1467244800.0)
def test_date_calendar_date_ordinal_day_of_week_year(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné le deuxième vendredi de juillet 2016', ['date']).perform()['timestamp'], 1469836800.0)
def test_date_day_of_week_next(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné lundi prochain ?', ['date']).perform()['timestamp'], 1467590400.0)
def test_date_calendar_date_day_month_year(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné le 2 juillet 2016 ?', ['date']).perform()['timestamp'], 1467417600.0)
def test_date_calendar_date_day_of_week_day_month_year(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné lundi 2 juin 2016 ?', ['date']).perform()['timestamp'], 1464825600.0)
def test_date_22_decembre_noon(self): self.assertEqual(MetadataExtractor('je cherche des cacahuètes pour le 22 décembre à midi', ['date']).perform()['timestamp'], 1482408000.0)
def test_date_calendar_date_day(self): self.assertEqual(MetadataExtractor('il y a quoi au ciné le 2 ?', ['date']).perform()['timestamp'], 1464825600.0)
def test_date_tuesday_noon(self): self.assertEqual(MetadataExtractor('je cherche du chocolat pour le mardi midi', ['date']).perform()['timestamp'], 1467720000.0)
def test_date_date_day_month(self): self.assertEqual(MetadataExtractor('je cherche du poisson pourri pour le 25 décembre', ['date']).perform()['timestamp'], 1482624000.0)
def test_date_next_day(self): self.assertEqual(MetadataExtractor('je veux partir lundi', ['date']).perform()['timestamp'], 1467590400.0)
def test_without_metadata_to_extract(self): self.assertEqual(MetadataExtractor('je veux un petit ricard dans un verre à ballon', ['date']).perform(), {})
def test_perform_with_metadata(self): self.assertEqual( MetadataExtractor('je veux un petit ricard lundi', ['date']).perform()['timestamp'], 1467590400.0)