From 541b13945e439d8d5a1007a64da47c572310f471 Mon Sep 17 00:00:00 2001
From: Kevin Scott <kevsc634@student.liu.se>
Date: Thu, 27 Feb 2020 11:57:12 +0100
Subject: [PATCH] fixed error when running tests and restructured tests

---
 test/conftest.py             |  2 ++
 test/fixtures/__init__.py    |  0
 test/fixtures/signal.py      | 20 ++++++++++++++++++++
 test/port/__init__.py        |  0
 test/port/test_inputport.py  | 23 +++++++++++++++++++++++
 test/port/test_outputport.py | 18 ++++++++++++++++++
 test/{ => port}/test_port.py | 10 ++--------
 test/test_inputport.py       | 28 ----------------------------
 test/test_outputport.py      | 28 ----------------------------
 test/test_signal.py          | 28 ----------------------------
 10 files changed, 65 insertions(+), 92 deletions(-)
 create mode 100644 test/conftest.py
 create mode 100644 test/fixtures/__init__.py
 create mode 100644 test/fixtures/signal.py
 create mode 100644 test/port/__init__.py
 create mode 100644 test/port/test_inputport.py
 create mode 100644 test/port/test_outputport.py
 rename test/{ => port}/test_port.py (73%)
 delete mode 100644 test/test_inputport.py
 delete mode 100644 test/test_outputport.py
 delete mode 100644 test/test_signal.py

diff --git a/test/conftest.py b/test/conftest.py
new file mode 100644
index 00000000..986af94c
--- /dev/null
+++ b/test/conftest.py
@@ -0,0 +1,2 @@
+import pytest
+from test.fixtures.signal import *
\ No newline at end of file
diff --git a/test/fixtures/__init__.py b/test/fixtures/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/test/fixtures/signal.py b/test/fixtures/signal.py
new file mode 100644
index 00000000..5fbdcf2b
--- /dev/null
+++ b/test/fixtures/signal.py
@@ -0,0 +1,20 @@
+import pytest
+from b_asic import Signal, SignalSource, SignalDestination, Addition
+
+"""
+Use a fixture for initializing objects and pass them as argument to a test function
+"""
+@pytest.fixture
+def signal():
+    source = SignalSource(Addition(0), 1)
+    dest = SignalDestination(Addition(1), 2)
+    return Signal(0, source, dest)
+
+@pytest.fixture
+def signals():
+    ret = []
+    for i in range(0,3):
+        source = SignalSource(Addition(0), 1)
+        dest = SignalDestination(Addition(1), 2)
+        ret.append(Signal(i, source, dest))
+    return ret
\ No newline at end of file
diff --git a/test/port/__init__.py b/test/port/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/test/port/test_inputport.py b/test/port/test_inputport.py
new file mode 100644
index 00000000..d761900a
--- /dev/null
+++ b/test/port/test_inputport.py
@@ -0,0 +1,23 @@
+"""
+B-ASIC test suite for Inputport
+"""
+
+# import module we are testing
+from b_asic import InputPort
+
+# import dependencies
+from b_asic import Signal, SignalSource, SignalDestination, Addition
+
+import pytest
+
+def test_connect_multiple_signals(signals):
+    """
+    test if only one signal can connect to an input port
+    """
+    inp_port = InputPort(0)
+
+    for s in signals:
+        inp_port.connect(s)
+
+    assert inp_port.signal_count() == 1
+    assert inp_port.signals()[0] == signals[-1]
\ No newline at end of file
diff --git a/test/port/test_outputport.py b/test/port/test_outputport.py
new file mode 100644
index 00000000..5f7b8f49
--- /dev/null
+++ b/test/port/test_outputport.py
@@ -0,0 +1,18 @@
+"""
+B-ASIC test suite for InputPort
+TODO: More info
+"""
+from b_asic import OutputPort, Signal, SignalSource, SignalDestination, Addition
+import pytest
+
+def test_connect_multiple_signals(signals):
+    """
+    test if multiple signals can connect to an output port
+    """
+    outp_port = OutputPort(0)
+
+    for s in signals:
+        outp_port.connect(s)
+
+    assert outp_port.signal_count() == 3
+    assert outp_port.signals() == signals
\ No newline at end of file
diff --git a/test/test_port.py b/test/port/test_port.py
similarity index 73%
rename from test/test_port.py
rename to test/port/test_port.py
index f4e039a9..56cb9be2 100644
--- a/test/test_port.py
+++ b/test/port/test_port.py
@@ -1,16 +1,10 @@
 """
 B-ASIC test suite for Port interface, place all general test cases for abstract class Port here
-TODO: More info
 """
 
 from b_asic import InputPort, OutputPort, Signal, SignalSource, SignalDestination, Addition
 import pytest
 
-@pytest.fixture
-def signal():
-    source = SignalSource(Addition(0), 1)
-    dest = SignalDestination(Addition(1),2)
-    return Signal(source, dest)
 
 def test_connect_one_signal_to_port(signal):
     port = InputPort(0)
@@ -21,8 +15,8 @@ def test_connect_one_signal_to_port(signal):
 def test_change_port_signal():
     source = SignalSource(Addition(0), 1)
     dest = SignalDestination(Addition(1),2)
-    signal1 = Signal(source, dest)
-    signal2 = Signal(source, dest)
+    signal1 = Signal(1, source, dest)
+    signal2 = Signal(2, source, dest)
 
     port = InputPort(0)
     port.connect(signal1)
diff --git a/test/test_inputport.py b/test/test_inputport.py
deleted file mode 100644
index 0cb3cab9..00000000
--- a/test/test_inputport.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""
-B-ASIC test suite for Inputport
-TODO: More info
-"""
-from b_asic import InputPort, Signal, SignalSource, SignalDestination, Addition
-import pytest
-
-@pytest.fixture
-def signal():
-    source = SignalSource(Addition(0), 1)
-    dest = SignalDestination(Addition(1),2)
-    return Signal(source, dest)
-
-def test_connect_multple_signals(signal):
-    """
-    make sure we can only connect one signal to an input port
-    """
-    inp_port = InputPort(0)
-    inp_port.connect(signal)
-
-    # create new signal
-    source = SignalSource(Addition(0), 3)
-    dest = SignalDestination(Addition(1),4)
-    new_signal = Signal(source, dest)
-
-    inp_port.connect(new_signal)
-    inp_port.signal_count() == 1
-    assert inp_port.signals() == [new_signal]
\ No newline at end of file
diff --git a/test/test_outputport.py b/test/test_outputport.py
deleted file mode 100644
index 35331670..00000000
--- a/test/test_outputport.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""
-B-ASIC test suite for InputPort
-TODO: More info
-"""
-from b_asic import OutputPort, Signal, SignalSource, SignalDestination, Addition
-import pytest
-
-@pytest.fixture
-def signal():
-    source = SignalSource(Addition(0), 1)
-    dest = SignalDestination(Addition(1),2)
-    return Signal(source, dest)
-
-def test_connect_multiple_signals(signal):
-    """
-    make sure we can connect multiple signals to an output port
-    """
-    outp_port = OutputPort(0)
-    outp_port.connect(signal)
-
-    # create new signal
-    source = SignalSource(Addition(0), 3)
-    dest = SignalDestination(Addition(1),4)
-    new_signal = Signal(source, dest)
-
-    outp_port.connect(new_signal)
-    outp_port.signal_count() == 2
-    assert outp_port.signals() == [signal, new_signal]
\ No newline at end of file
diff --git a/test/test_signal.py b/test/test_signal.py
deleted file mode 100644
index 35d51eb5..00000000
--- a/test/test_signal.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from b_asic import Signal, SignalSource, SignalDestination
-from b_asic.core_operations import Addition 
-import pytest
-
-# TODO mock operation
-# Use port index
-
-@pytest.fixture
-def operation():
-    return Addition(0)
-
-@pytest.fixture
-def signal_dest(operation):
-    return SignalDestination(operation, 0)
-
-@pytest.fixture
-def signal_src(operation):
-    return SignalSource(operation, 0)
-
-def test_construct_source_signal(operation):
-    s = SignalSource(operation, 0)
-    assert True
-
-
-def test_construct_signal():
-    s = Signal(signal_src, signal_dest)
-    assert True
-
-- 
GitLab