test_jsonld_representation.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. """
  2. SPDX-FileCopyrightText: 2020-2021 zPlus <zplus@peers.community>
  3. SPDX-License-Identifier: GPL-2.0-only
  4. """
  5. import flask
  6. import forgefed
  7. import json
  8. import logging
  9. import os
  10. import pytest
  11. import tempfile
  12. from forgefed import APP_URL, activitypub
  13. from flask import url_for, request
  14. from pagure import flask_app
  15. log = logging.getLogger(__name__)
  16. log.setLevel(logging.DEBUG)
  17. @pytest.fixture
  18. def client():
  19. #db_fd, db_path = tempfile.mkstemp()
  20. app = flask_app.create_app()
  21. app.config['TESTING'] = True
  22. with app.test_client() as client:
  23. #with app.app_context():
  24. # flaskr.init_db()
  25. yield client
  26. #os.close(db_fd)
  27. #os.unlink(db_path)
  28. def test_project_jsonld(client):
  29. response = client.get('/foo/my_project', follow_redirects=True, headers=activitypub.REQUEST_HEADERS)
  30. data = json.loads(response.data)
  31. assert 'name' in data
  32. assert 'repository' in data
  33. assert 'tickettracker' in data
  34. result = {
  35. '@context': activitypub.jsonld_context,
  36. 'type': 'Project'
  37. }
  38. assert result.items() <= data.items()
  39. def test_person_jsonld(client):
  40. response = client.get('/user/foo', follow_redirects=True, headers=activitypub.REQUEST_HEADERS)
  41. data = json.loads(response.data)
  42. assert 'name' in data
  43. assert 'preferredUsername' in data
  44. assert 'roles' in data
  45. assert 'sshKey' in data
  46. result = {
  47. '@context': activitypub.jsonld_context,
  48. 'followers': '{}/user/foo/followers'.format(APP_URL),
  49. 'following': '{}/user/foo/following'.format(APP_URL),
  50. 'id': '{}/user/foo'.format(APP_URL),
  51. 'inbox': '{}/user/foo/inbox'.format(APP_URL),
  52. 'outbox': '{}/user/foo/outbox'.format(APP_URL),
  53. 'publicKey': '{}/user/foo/key.pub'.format(APP_URL),
  54. 'type': 'Person'
  55. }
  56. assert result.items() <= data.items()