def test_get_records_by_key(self): playbook = factories.PlaybookFactory() record = factories.RecordFactory(playbook=playbook, key="by_key") factories.RecordFactory(key="another_record") request = self.client.get("/api/v1/records?key=%s" % record.key) self.assertEqual(2, models.Record.objects.all().count()) self.assertEqual(1, len(request.data["results"])) self.assertEqual(record.key, request.data["results"][0]["key"]) self.assertEqual(record.playbook.id, request.data["results"][0]["playbook"])
def test_partial_update_record(self): record = factories.RecordFactory() self.assertNotEqual("update", record.key) request = self.client.patch("/api/v1/records/%s" % record.id, {"key": "update"}) self.assertEqual(200, request.status_code) record_updated = models.Record.objects.get(id=record.id) self.assertEqual("update", record_updated.key)
def test_get_record_order(self): first_record = factories.RecordFactory(key="alpha") second_record = factories.RecordFactory(key="beta") # Ensure we have two objects request = self.client.get("/api/v1/records") self.assertEqual(2, len(request.data["results"])) order_fields = ["id", "created", "updated", "key"] # Ascending order for field in order_fields: request = self.client.get("/api/v1/records?order=%s" % field) self.assertEqual(request.data["results"][0]["id"], first_record.id) # Descending order for field in order_fields: request = self.client.get("/api/v1/records?order=-%s" % field) self.assertEqual(request.data["results"][0]["id"], second_record.id)
def test_get_record_by_date(self): record = factories.RecordFactory() past = datetime.datetime.now() - datetime.timedelta(hours=12) negative_date_fields = ["created_before", "updated_before"] positive_date_fields = ["created_after", "updated_after"] # Expect no record when searching before it was created for field in negative_date_fields: request = self.client.get("/api/v1/records?%s=%s" % (field, past.isoformat())) self.assertEqual(request.data["count"], 0) # Expect a record when searching after it was created for field in positive_date_fields: request = self.client.get("/api/v1/records?%s=%s" % (field, past.isoformat())) self.assertEqual(request.data["count"], 1) self.assertEqual(request.data["results"][0]["id"], record.id)
def test_delete_record(self): record = factories.RecordFactory() self.assertEqual(1, models.Record.objects.all().count()) request = self.client.delete("/api/v1/records/%s" % record.id) self.assertEqual(204, request.status_code) self.assertEqual(0, models.Record.objects.all().count())
def test_get_record(self): record = factories.RecordFactory() request = self.client.get("/api/v1/records") self.assertEqual(1, len(request.data["results"])) self.assertEqual(record.key, request.data["results"][0]["key"])
def test_record_factory(self): record = factories.RecordFactory(key="test") self.assertEqual(record.key, "test")
def test_get_playbook_arguments(self): record = factories.RecordFactory() request = self.client.get("/api/v1/records/%s" % record.id) self.assertIn("inventory", request.data["playbook"]["arguments"])