test_api.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. from django.urls import reverse
  2. from django.utils import timezone
  3. from utilities.testing import APITestCase, APIViewTestCases
  4. from ..models import *
  5. class AppTest(APITestCase):
  6. def test_root(self):
  7. url = reverse('core-api:api-root')
  8. response = self.client.get('{}?format=api'.format(url), **self.header)
  9. self.assertEqual(response.status_code, 200)
  10. class DataSourceTest(APIViewTestCases.APIViewTestCase):
  11. model = DataSource
  12. brief_fields = ['description', 'display', 'id', 'name', 'url']
  13. bulk_update_data = {
  14. 'enabled': False,
  15. 'description': 'foo bar baz',
  16. }
  17. @classmethod
  18. def setUpTestData(cls):
  19. data_sources = (
  20. DataSource(name='Data Source 1', type='local', source_url='file:///var/tmp/source1/'),
  21. DataSource(name='Data Source 2', type='local', source_url='file:///var/tmp/source2/'),
  22. DataSource(name='Data Source 3', type='local', source_url='file:///var/tmp/source3/'),
  23. )
  24. DataSource.objects.bulk_create(data_sources)
  25. cls.create_data = [
  26. {
  27. 'name': 'Data Source 4',
  28. 'type': 'git',
  29. 'source_url': 'https://example.com/git/source4'
  30. },
  31. {
  32. 'name': 'Data Source 5',
  33. 'type': 'git',
  34. 'source_url': 'https://example.com/git/source5'
  35. },
  36. {
  37. 'name': 'Data Source 6',
  38. 'type': 'git',
  39. 'source_url': 'https://example.com/git/source6'
  40. },
  41. ]
  42. class DataFileTest(
  43. APIViewTestCases.GetObjectViewTestCase,
  44. APIViewTestCases.ListObjectsViewTestCase,
  45. APIViewTestCases.GraphQLTestCase
  46. ):
  47. model = DataFile
  48. brief_fields = ['display', 'id', 'path', 'url']
  49. user_permissions = ('core.view_datasource', )
  50. @classmethod
  51. def setUpTestData(cls):
  52. datasource = DataSource.objects.create(
  53. name='Data Source 1',
  54. type='local',
  55. source_url='file:///var/tmp/source1/'
  56. )
  57. data_files = (
  58. DataFile(
  59. source=datasource,
  60. path='dir1/file1.txt',
  61. last_updated=timezone.now(),
  62. size=1000,
  63. hash='442da078f0111cbdf42f21903724f6597c692535f55bdfbbea758a1ae99ad9e1'
  64. ),
  65. DataFile(
  66. source=datasource,
  67. path='dir1/file2.txt',
  68. last_updated=timezone.now(),
  69. size=2000,
  70. hash='a78168c7c97115bafd96450ed03ea43acec495094c5caa28f0d02e20e3a76cc2'
  71. ),
  72. DataFile(
  73. source=datasource,
  74. path='dir1/file3.txt',
  75. last_updated=timezone.now(),
  76. size=3000,
  77. hash='12b8827a14c4d5a2f30b6c6e2b7983063988612391c6cbe8ee7493b59054827a'
  78. ),
  79. )
  80. DataFile.objects.bulk_create(data_files)