Merge pull request #76 from antmicro/ci_fix

CI fixes
diff --git a/.travis.yml b/.travis.yml
index a361894..c9d1b5e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,9 @@
-language: minimal
+language: python
+
+python:
+  - 3.5
+  - 3.6
+  - 3.7
 
 install:
   - source prepareenv.sh
@@ -8,7 +13,7 @@
 script:
   - conda activate yosys-env
   - which tox
-  - tox
+  - TOXENV="py${TRAVIS_PYTHON_VERSION//./}" tox
 
 notifications:
   email: false
diff --git a/prepareenv.sh b/prepareenv.sh
index 1c89efe..0ff3322 100755
--- a/prepareenv.sh
+++ b/prepareenv.sh
@@ -16,4 +16,5 @@
 conda install -q setuptools
 conda update -q conda
 conda env create --file conf/environment.yml
+conda config --set env_prompt '({name})'
 conda activate yosys-env
diff --git a/tests/vtr/lutff-pair/golden.pb_type.xml b/tests/vtr/lutff-pair/golden.pb_type.xml
index 2d667bf..ea403db 100644
--- a/tests/vtr/lutff-pair/golden.pb_type.xml
+++ b/tests/vtr/lutff-pair/golden.pb_type.xml
@@ -39,16 +39,16 @@
       <port from="lut" name="I[3]" type="output"/>
     </direct>
     <mux name="mux">
-      <port from="lut" name="O" type="input">
-        <metadata>
-          <meta name="fasm_mux">L</meta>
-        </metadata>
-      </port>
       <port from="ff" name="Q" type="input">
         <metadata>
           <meta name="fasm_mux">F</meta>
         </metadata>
       </port>
+      <port from="lut" name="O" type="input">
+        <metadata>
+          <meta name="fasm_mux">L</meta>
+        </metadata>
+      </port>
       <port name="O" type="output"/>
       <metadata>
         <meta name="type">bel</meta>
diff --git a/tox.ini b/tox.ini
index ec7d104..bfbc74c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -5,6 +5,8 @@
 setenv =
     PYTHONPATH={toxinidir}/v2x
 basepython =
+    py27: python2.7
+    py34: python3.4
     py35: python3.5
     py36: python3.6
     py37: python3.7
@@ -15,12 +17,14 @@
     flake8
     pytest
 commands =
-    check-manifest --ignore tox.ini,tests*
+    check-manifest --ignore tox.ini,tests,*.pyc,*.swp
+    python --version
     # This repository uses a Markdown long_description, so the -r flag to
     # `setup.py check` is not needed. If your project contains a README.rst,
     # use `python setup.py check -m -r -s` instead.
     python setup.py check -m -s
     flake8 .
+    pytest --doctest-modules -vv v2x
     pytest -vv
 [flake8]
 exclude = .tox,*.egg,build,data
diff --git a/v2x/vlog_to_pbtype.py b/v2x/vlog_to_pbtype.py
index 8c4f8c7..e0a0e66 100755
--- a/v2x/vlog_to_pbtype.py
+++ b/v2x/vlog_to_pbtype.py
@@ -268,10 +268,14 @@
 ) -> ET.Element:
 
     mux_xml = ET.SubElement(ic_xml, "mux", {"name": mux_name})
-    for mux_input, driver in mux_inputs.items():
+
+    keys = sorted(list(mux_inputs.keys()))
+    for mux_input, driver in [(k, mux_inputs[k],) for k in keys]:
         create_port(mux_xml, driver, "input", metadata={'fasm_mux': mux_input})
+
     assert len(mux_outputs) == 1, mux_outputs
-    for mux_pin, sinks in mux_outputs.items():
+    keys = sorted(list(mux_outputs.keys()))
+    for mux_pin, sinks in [(k, mux_outputs[k],) for k in keys]:
         assert len(sinks) == 1, sinks
         for sink_pin, path_attr in sinks:
             create_port(mux_xml, sink_pin, "output")