From 9323e65469f769ba3ea26e3f08de6a2cab152e50 Mon Sep 17 00:00:00 2001
From: Samuel Gaist <samuel.gaist@idiap.ch>
Date: Wed, 22 Apr 2020 17:35:33 +0200
Subject: [PATCH] [dataformats][tests] Add tests for field query string
 handling of PUT

---
 beat/web/dataformats/tests/tests_api.py | 49 ++++++++++++++++++++-----
 1 file changed, 40 insertions(+), 9 deletions(-)

diff --git a/beat/web/dataformats/tests/tests_api.py b/beat/web/dataformats/tests/tests_api.py
index 56f639975..2fd790834 100644
--- a/beat/web/dataformats/tests/tests_api.py
+++ b/beat/web/dataformats/tests/tests_api.py
@@ -537,7 +537,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
 
         self.checkResponse(response, 403)
 
-    def test_successfull_update(self):
+    def test_successful_update(self):
         self.login_johndoe()
 
         response = self.client.put(
@@ -559,7 +559,38 @@ class DataFormatUpdate(DataFormatsAPIBase):
             declaration = json.load(f)
         self.assertEqual(declaration["value"], "float64")
 
-    def test_successfull_update_of_description_only(self):
+    def test_successful_update_with_specific_return_field(self):
+        self.login_johndoe()
+
+        response = self.client.put(
+            self.url,
+            json.dumps({"description": "blah", "declaration": {"value": "float64"}}),
+            content_type="application/json",
+            QUERY_STRING="fields=description",
+        )
+
+        self.checkResponse(response, 200, content_type="application/json")
+        answer = response.json()
+        self.assertEqual(len(answer), 1)
+        self.assertTrue("description" in answer)
+
+    def test_successful_update_with_specific_return_several_fields(self):
+        self.login_johndoe()
+
+        response = self.client.put(
+            self.url,
+            json.dumps({"description": "blah", "declaration": {"value": "float64"}}),
+            content_type="application/json",
+            QUERY_STRING="fields=declaration,description",
+        )
+
+        self.checkResponse(response, 200, content_type="application/json")
+        answer = response.json()
+        self.assertEqual(len(answer), 2)
+        self.assertTrue("declaration" in answer)
+        self.assertTrue("description" in answer)
+
+    def test_successful_update_of_description_only(self):
         self.login_johndoe()
 
         response = self.client.put(
@@ -573,7 +604,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
         dataformat = DataFormat.objects.get(author__username="johndoe", name="format1")
         self.assertEqual(dataformat.description, b"blah")
 
-    def test_successfull_update_of_declaration_only(self):
+    def test_successful_update_of_declaration_only(self):
         self.login_johndoe()
 
         response = self.client.put(
@@ -594,7 +625,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
             declaration = json.load(f)
         self.assertEqual(declaration["value"], "float64")
 
-    def test_successfull_update_of_declaration__extension_addition(self):
+    def test_successful_update_of_declaration__extension_addition(self):
         self.login_johndoe()
 
         (dataformat, errors) = DataFormat.objects.create_dataformat(
@@ -630,7 +661,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
         self.assertEqual(declaration["value"], "float64")
         self.assertEqual(declaration["#extends"], "johndoe/format4/1")
 
-    def test_successfull_update_of_declaration__extension_removal(self):
+    def test_successful_update_of_declaration__extension_removal(self):
         self.login_johndoe()
 
         (dataformat, errors) = DataFormat.objects.create_dataformat(
@@ -656,7 +687,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
         self.assertTrue(dataformat.extend is None)
         self.assertEqual(dataformat.referenced_formats.count(), 0)
 
-    def test_successfull_update_of_declaration__extension_keeping(self):
+    def test_successful_update_of_declaration__extension_keeping(self):
         self.login_johndoe()
 
         (dataformat, errors) = DataFormat.objects.create_dataformat(
@@ -685,7 +716,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
         self.assertEqual(dataformat.extend.name, "format1")
         self.assertEqual(dataformat.referenced_formats.count(), 0)
 
-    def test_successfull_update_of_declaration__composition_addition(self):
+    def test_successful_update_of_declaration__composition_addition(self):
         self.login_johndoe()
 
         (dataformat, errors) = DataFormat.objects.create_dataformat(
@@ -724,7 +755,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
         self.assertEqual(declaration["value"], "float64")
         self.assertEqual(declaration["field1"], "johndoe/format4/1")
 
-    def test_successfull_update_of_declaration__composition_removal(self):
+    def test_successful_update_of_declaration__composition_removal(self):
         self.login_johndoe()
 
         (dataformat, errors) = DataFormat.objects.create_dataformat(
@@ -750,7 +781,7 @@ class DataFormatUpdate(DataFormatsAPIBase):
         self.assertTrue(dataformat.extend is None)
         self.assertEqual(dataformat.referenced_formats.count(), 0)
 
-    def test_successfull_update_of_declaration__composition_keeping(self):
+    def test_successful_update_of_declaration__composition_keeping(self):
         self.login_johndoe()
 
         (dataformat, errors) = DataFormat.objects.create_dataformat(
-- 
GitLab