Add test cases for local ID assignment race conditions

Issue: HIC-251
Change-Id: I9616b786a44bba2621a8a800035ff1189d3d9b19
diff --git a/crashreports/tests/test_rest_api_crashreports.py b/crashreports/tests/test_rest_api_crashreports.py
index dbfaccc..b09ca1d 100644
--- a/crashreports/tests/test_rest_api_crashreports.py
+++ b/crashreports/tests/test_rest_api_crashreports.py
@@ -1,8 +1,13 @@
 """Tests for the crashreports REST API."""
+import unittest
+from datetime import timedelta
+
+from django.db import connection
 from django.urls import reverse
 from rest_framework import status
 
-from crashreports.tests.utils import Dummy
+from crashreports.models import Crashreport
+from crashreports.tests.utils import Dummy, RaceConditionsTestCase
 from crashreports.tests.test_rest_api_heartbeats import HeartbeatsTestCase
 
 
@@ -47,3 +52,29 @@
     def test_create_with_datetime(self):
         """Override to just pass because crashreports always use datetime."""
         pass
+
+
+@unittest.skip("Fails because of race condition when assigning local IDs")
+class CrashreportRaceConditionsTestCase(RaceConditionsTestCase):
+    """Test cases for crashreport race conditions."""
+
+    LIST_CREATE_URL = "api_v1_crashreports"
+
+    def test_create_multiple_crashreports(self):
+        """Test that no race condition occurs when creating crashreports."""
+        uuid, user, _ = self._register_device()
+
+        def upload_report(client, data):
+            response = client.post(reverse(self.LIST_CREATE_URL), data)
+            self.assertEqual(status.HTTP_201_CREATED, response.status_code)
+            connection.close()
+
+        data = Dummy.crashreport_data(uuid=uuid)
+        argslist = [
+            [user, dict(data, date=data["date"] + timedelta(milliseconds=i))]
+            for i in range(10)
+        ]
+
+        self._test_create_multiple(
+            Crashreport, upload_report, argslist, "device_local_id"
+        )