test-dsyms.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # -*- coding: utf-8 -*-
  2. from __future__ import absolute_import
  3. import zipfile
  4. from six import BytesIO
  5. from django.core.files.uploadedfile import SimpleUploadedFile
  6. from django.core.urlresolvers import reverse
  7. from django.test.client import RequestFactory
  8. from tests.apidocs.util import APIDocsTestCase
  9. class ProjectDsymsDocs(APIDocsTestCase):
  10. def setUp(self):
  11. self.url = reverse(
  12. "sentry-api-0-dsym-files",
  13. kwargs={"organization_slug": self.organization.slug, "project_slug": self.project.slug},
  14. )
  15. self.create_dif_file(project=self.project)
  16. self.login_as(user=self.user)
  17. def test_get(self):
  18. response = self.client.get(self.url)
  19. request = RequestFactory().get(self.url)
  20. self.validate_schema(request, response)
  21. def test_post(self):
  22. PROGUARD_UUID = "6dc7fdb0-d2fb-4c8e-9d6b-bb1aa98929b1"
  23. PROGUARD_SOURCE = b"""\
  24. org.slf4j.helpers.Util$ClassContextSecurityManager -> org.a.b.g$a:
  25. 65:65:void <init>() -> <init>
  26. 67:67:java.lang.Class[] getClassContext() -> getClassContext
  27. 65:65:void <init>(org.slf4j.helpers.Util$1) -> <init>
  28. """
  29. out = BytesIO()
  30. f = zipfile.ZipFile(out, "w")
  31. f.writestr("proguard/%s.txt" % PROGUARD_UUID, PROGUARD_SOURCE)
  32. f.close()
  33. data = {
  34. "file": SimpleUploadedFile(
  35. "symbols.zip", out.getvalue(), content_type="application/zip"
  36. ),
  37. }
  38. response = self.client.post(self.url, data, format="multipart",)
  39. request = RequestFactory().post(self.url, data)
  40. self.validate_schema(request, response)