view.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from random import randint
  2. from .app import App
  3. from .model import Json, World, WorldQueries, WorldUpdates, Plaintext
  4. from .collection import FortuneCollection
  5. @App.json(model=Json)
  6. def test_1(self, request):
  7. """Test 1: JSON serialization"""
  8. return {'message': 'Hello, World!'}
  9. @App.json(model=World)
  10. def test_2(self, request):
  11. """Test 2: Single database query"""
  12. return {'id': self.id, 'randomNumber': self.randomnumber}
  13. @App.json(model=WorldQueries)
  14. def test_3(self, request):
  15. """Test 3: Multiple database queries"""
  16. try:
  17. queries = int(self.queries)
  18. except ValueError:
  19. queries = 1
  20. else:
  21. if queries < 1:
  22. queries = 1
  23. elif queries > 500:
  24. queries = 500
  25. result = []
  26. for id_ in [randint(1, 10000) for _ in range(queries)]:
  27. result.append({'id': id_, 'randomNumber': World[id_].randomnumber})
  28. return result
  29. @App.html(model=FortuneCollection, template='fortune.jinja2')
  30. def test_4(self, request):
  31. """Test 4: Fortunes"""
  32. fortunes = [f.to_dict() for f in self.query()]
  33. fortunes.append({
  34. 'id': 0,
  35. 'message': 'Additional fortune added at request time.'
  36. })
  37. return {'fortunes': sorted(fortunes, key=lambda x: x['message'])}
  38. @App.json(model=WorldUpdates)
  39. def test_5(self, request):
  40. """Test 5: Database updates"""
  41. try:
  42. queries = int(self.queries)
  43. except ValueError:
  44. queries = 1
  45. else:
  46. if queries < 1:
  47. queries = 1
  48. elif queries > 500:
  49. queries = 500
  50. result = []
  51. for id_ in sorted(randint(1, 10000) for _ in range(queries)):
  52. randomNumber = randint(1, 10000)
  53. World[id_].randomnumber = randomNumber
  54. result.append({'id': id_, 'randomNumber': randomNumber})
  55. return result
  56. @App.view(model=Plaintext)
  57. def test_6(self, request):
  58. """Test 6: Plaintext"""
  59. return 'Hello, World!'