From 4afd5bbbeed4a27533d9f512e401f05b51c7486b Mon Sep 17 00:00:00 2001
From: Samuel Gaist <samuel.gaist@idiap.ch>
Date: Fri, 11 Jan 2019 12:28:35 +0100
Subject: [PATCH] [test][editor] Code cleanup

- Moved test into a class
- Use fixture for model creation
---
 beat/editor/test/test_editors.py | 55 +++++++++++++++++++++-----------
 1 file changed, 37 insertions(+), 18 deletions(-)

diff --git a/beat/editor/test/test_editors.py b/beat/editor/test/test_editors.py
index ec56a9ef..b54b386d 100644
--- a/beat/editor/test/test_editors.py
+++ b/beat/editor/test/test_editors.py
@@ -22,6 +22,7 @@
 # with the BEAT platform. If not, see http://www.gnu.org/licenses/.           #
 #                                                                             #
 ###############################################################################
+
 import pytest
 
 from PyQt5 import QtCore
@@ -36,7 +37,7 @@ from ..widgets.field import Field
 
 class MockAssetEditor(AbstractAssetEditor):
     """
-    Base class of all asset editors
+    Mock editor to show how to test an editor
     """
 
     def __init__(self, parent=None):
@@ -56,6 +57,7 @@ class MockAssetEditor(AbstractAssetEditor):
 
     def load_json(self, json_object):
         """Load the json object passed as parameter"""
+
         for name, type_ in json_object.items():
             field = Field(self.dataformat_model)
             field.format_name = name
@@ -64,6 +66,7 @@ class MockAssetEditor(AbstractAssetEditor):
 
     def dump_json(self):
         """Returns the json representation of the asset"""
+
         field_list = self.findChildren(Field)
 
         json_data = {}
@@ -74,31 +77,47 @@ class MockAssetEditor(AbstractAssetEditor):
         return json_data
 
 
-def test_json_load_and_dump(qtbot):
-    json_reference = {"value32": "float32", "value64": "float64"}
+@pytest.fixture()
+def dataformat_model():
+    return QStringListModel(["float32", "float64", "int32", "int64"])
+
+
+class TestMockEditor:
+    """Test that the mock editor works correctly"""
+
+    def test_json_load_and_dump(self, qtbot, dataformat_model):
+        json_reference = {"value32": "float32", "value64": "float64"}
+
+        widget = MockAssetEditor()
+        widget.set_dataformat_model(dataformat_model)
+        widget.load_json(json_reference)
+
+        assert widget.dump_json() == json_reference
 
-    dataformat_model = QStringListModel(["float32", "float64", "int32", "int64"])
+    def test_dataformat_creation(self, qtbot, dataformat_model):
+        widget = MockAssetEditor()
+        widget.set_dataformat_model(dataformat_model)
 
-    widget = MockAssetEditor()
-    widget.set_dataformat_model(dataformat_model)
-    widget.load_json(json_reference)
+        qtbot.mouseClick(widget.add_field_button, QtCore.Qt.LeftButton)
+        fields = widget.findChildren(Field)
 
-    assert widget.dump_json() == json_reference
+        assert len(fields) == 1
 
+        field = fields[0]
 
-def test_dataformat_creation(qtbot):
-    # json_reference = {"value32": "float32", "value64": "float64"}
+        field.format_name = "value32"
+        field.format_type = "float32"
 
-    dataformat_model = QStringListModel(["float32", "float64", "int32", "int64"])
+        assert widget.dump_json() == {"value32": "float32"}
 
-    widget = MockAssetEditor()
-    widget.set_dataformat_model(dataformat_model)
+        qtbot.mouseClick(widget.add_field_button, QtCore.Qt.LeftButton)
+        fields = widget.findChildren(Field)
 
-    qtbot.mouseClick(widget.add_field_button, QtCore.Qt.LeftButton)
-    fields = widget.findChildren(Field)
+        assert len(fields) == 2
 
-    assert len(fields) == 1
+        field = fields[1]
 
-    field = fields[0]
+        field.format_name = "value64"
+        field.format_type = "float64"
 
-    qtbot.mouseClick(field.dataformat_box, QtCore.Qt.LeftButton)
+        assert widget.dump_json() == {"value32": "float32", "value64": "float64"}
-- 
GitLab