From 6ff940c82a0deb270168331391e68e31d44788c6 Mon Sep 17 00:00:00 2001
From: "Antoine R. Dumont (@ardumont)" <antoine.romain.dumont@gmail.com>
Date: Sat, 19 Oct 2019 16:17:17 +0200
Subject: [PATCH] tests_converters: Migrate to pytest

---
 swh/deposit/tests/api/test_converters.py | 194 +++++++++++------------
 1 file changed, 92 insertions(+), 102 deletions(-)

diff --git a/swh/deposit/tests/api/test_converters.py b/swh/deposit/tests/api/test_converters.py
index 3d2a4888..bfc5f039 100644
--- a/swh/deposit/tests/api/test_converters.py
+++ b/swh/deposit/tests/api/test_converters.py
@@ -1,132 +1,122 @@
-# Copyright (C) 2017-2018  The Software Heritage developers
+# Copyright (C) 2017-2019  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
 
-from rest_framework.test import APITestCase
-
 from swh.deposit.api.converters import convert_status_detail
 
 
-class ConvertersTestCase(APITestCase):
-
-    def test_convert_status_detail_empty(self):
-        actual_status_detail = convert_status_detail({})
-        self.assertIsNone(actual_status_detail)
+def test_convert_status_detail_empty():
+    for status_detail in [{}, {'dummy-keys': []}, None]:
+        assert convert_status_detail(status_detail) is None
 
-        actual_status_detail = convert_status_detail({'dummy-keys': []})
-        self.assertIsNone(actual_status_detail)
 
-        actual_status_detail = convert_status_detail(None)
-        self.assertIsNone(actual_status_detail)
-
-    def test_convert_status_detail(self):
-        status_detail = {
-            'url': {
-                'summary': "At least one url field must be compatible with the client\'s domain name. The following url fields failed the check",  # noqa
-                'fields': ['blahurl', 'testurl'],
+def test_convert_status_detail():
+    status_detail = {
+        'url': {
+            'summary': "At least one url field must be compatible with the client\'s domain name. The following url fields failed the check",  # noqa
+            'fields': ['blahurl', 'testurl'],
+        },
+        'metadata': [
+            {
+                'summary': 'Mandatory fields missing',
+                'fields': ['url', 'title'],
             },
-            'metadata': [
-                {
-                    'summary': 'Mandatory fields missing',
-                    'fields': ['url', 'title'],
-                },
-                {
-                    'summary': 'Alternate fields missing',
-                    'fields': ['name or title', 'url or badurl']
-                }
-            ],
-            'archive': [{
-                'summary': 'Unreadable archive',
-                'fields': ['1'],
-            }],
-        }
-
-        expected_status_detail = '''- Mandatory fields missing (url, title)
+            {
+                'summary': 'Alternate fields missing',
+                'fields': ['name or title', 'url or badurl']
+            }
+        ],
+        'archive': [{
+            'summary': 'Unreadable archive',
+            'fields': ['1'],
+        }],
+    }
+
+    expected_status_detail = '''- Mandatory fields missing (url, title)
 - Alternate fields missing (name or title, url or badurl)
 - Unreadable archive (1)
 - At least one url field must be compatible with the client's domain name. The following url fields failed the check (blahurl, testurl)
 '''  # noqa
 
-        actual_status_detail = convert_status_detail(status_detail)
+    actual_status_detail = convert_status_detail(status_detail)
+    assert actual_status_detail == expected_status_detail
 
-        self.assertEqual(actual_status_detail, expected_status_detail)
 
-    def test_convert_status_detail_2(self):
-        status_detail = {
-            'url': {
-                'summary': 'At least one compatible url field. Failed',
-                'fields': ['testurl'],
+def test_convert_status_detail_2():
+    status_detail = {
+        'url': {
+            'summary': 'At least one compatible url field. Failed',
+            'fields': ['testurl'],
+        },
+        'metadata': [
+            {
+                'summary': 'Mandatory fields missing',
+                'fields': ['name'],
+            },
+        ],
+        'archive': [
+            {
+                'summary': 'Invalid archive',
+                'fields': ['2'],
             },
-            'metadata': [
-                {
-                    'summary': 'Mandatory fields missing',
-                    'fields': ['name'],
-                },
-            ],
-            'archive': [
-                {
-                    'summary': 'Invalid archive',
-                    'fields': ['2'],
-                },
-                {
-                    'summary': 'Unsupported archive',
-                    'fields': ['1'],
-                }
-            ],
-        }
-
-        expected_status_detail = '''- Mandatory fields missing (name)
+            {
+                'summary': 'Unsupported archive',
+                'fields': ['1'],
+            }
+        ],
+    }
+
+    expected_status_detail = '''- Mandatory fields missing (name)
 - Invalid archive (2)
 - Unsupported archive (1)
 - At least one compatible url field. Failed (testurl)
 '''
 
-        actual_status_detail = convert_status_detail(status_detail)
-
-        self.assertEqual(actual_status_detail, expected_status_detail)
-
-    def test_convert_status_detail_3(self):
-        status_detail = {
-            'url': {
-                'summary': 'At least one compatible url field',
+    actual_status_detail = convert_status_detail(status_detail)
+    assert actual_status_detail == expected_status_detail
+
+
+def test_convert_status_detail_3():
+    status_detail = {
+        'url': {
+            'summary': 'At least one compatible url field',
+        },
+    }
+
+    expected_status_detail = '- At least one compatible url field\n'
+    actual_status_detail = convert_status_detail(status_detail)
+    assert actual_status_detail == expected_status_detail
+
+def test_convert_status_detail_edge_case():
+    status_detail = {
+        'url': {
+            'summary': 'At least one compatible url field. Failed',
+            'fields': ['testurl'],
+        },
+        'metadata': [
+            {
+                'summary': 'Mandatory fields missing',
+                'fields': ['9', 10, 1.212],
             },
-        }
-
-        expected_status_detail = '- At least one compatible url field\n'
-        actual_status_detail = convert_status_detail(status_detail)
-        self.assertEqual(actual_status_detail, expected_status_detail)
-
-    def test_convert_status_detail_edge_case(self):
-        status_detail = {
-            'url': {
-                'summary': 'At least one compatible url field. Failed',
-                'fields': ['testurl'],
+        ],
+        'archive': [
+            {
+                'summary': 'Invalid archive',
+                'fields': ['3'],
             },
-            'metadata': [
-                {
-                    'summary': 'Mandatory fields missing',
-                    'fields': ['9', 10, 1.212],
-                },
-            ],
-            'archive': [
-                {
-                    'summary': 'Invalid archive',
-                    'fields': ['3'],
-                },
-                {
-                    'summary': 'Unsupported archive',
-                    'fields': [2],
-                }
-            ],
-        }
-
-        expected_status_detail = '''- Mandatory fields missing (9, 10, 1.212)
+            {
+                'summary': 'Unsupported archive',
+                'fields': [2],
+            }
+        ],
+    }
+
+    expected_status_detail = '''- Mandatory fields missing (9, 10, 1.212)
 - Invalid archive (3)
 - Unsupported archive (2)
 - At least one compatible url field. Failed (testurl)
 '''
 
-        actual_status_detail = convert_status_detail(status_detail)
-
-        self.assertEqual(actual_status_detail, expected_status_detail)
+    actual_status_detail = convert_status_detail(status_detail)
+    assert actual_status_detail == expected_status_detail
-- 
GitLab