Enable black in tox.ini
[osm/PLA.git] / osm_pla / test / test_mznModelGenerator.py
index ed571f4..4f0423d 100644 (file)
 # limitations under the License.
 import datetime
 import logging
+
 # import unittest
 from unittest import TestCase
+
 # import random
 # from operator import itemgetter
 import re
@@ -25,134 +27,286 @@ from jinja2 import Template
 from osm_pla.placement.mznplacement import MznModelGenerator
 
 test_ns_placement_data_str = {
-    'vim_accounts': ['vim' + vim_account.replace('-', '_') for vim_account in ['aaaaaaaa-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'bbbbbbbb-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'cccccccc-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'dddddddd-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'eeeeeeee-38f5-438d-b8ee-3f93b3531f87']],
-    'trp_link_latency': [[0, 50, 100, 150, 200], [0, 0, 100, 150, 200], [0, 0, 0, 150, 200], [0, 0, 0, 0, 200],
-                         [0, 0, 0, 0, 0]],
-    'trp_link_jitter': [[0, 5, 10, 15, 20], [0, 0, 10, 15, 20], [0, 0, 0, 15, 20], [0, 0, 0, 0, 20],
-                        [0, 0, 0, 0, 0]],
-    'trp_link_price_list': [[0, 5, 6, 6, 7], [0, 0, 6, 6, 7], [0, 0, 0, 6, 7], [0, 0, 0, 0, 7], [0, 0, 0, 0, 0]],
-    'ns_desc': [
-        {'vnf_id': 'one', 'vnf_price_per_vim': [50, 51, 52, 53, 54]},
-        {'vnf_id': 'two', 'vnf_price_per_vim': [20, 21, 22, 23, 24]},
-        {'vnf_id': 'three', 'vnf_price_per_vim': [70, 71, 72, 73, 74]},
-        {'vnf_id': 'four', 'vnf_price_per_vim': [40, 41, 42, 43, 44]}],
-    'vld_desc': [{'cp_refs': ['one', 'two'], 'latency': 150, 'jitter': 30},
-                 {'cp_refs': ['two', 'three'], 'latency': 140, 'jitter': 30},
-                 {'cp_refs': ['three', 'four'], 'latency': 130, 'jitter': 30}],
-    'generator_data': {'file': __file__, 'time': datetime.datetime.now()}
+    "vim_accounts": [
+        "vim" + vim_account.replace("-", "_")
+        for vim_account in [
+            "aaaaaaaa-38f5-438d-b8ee-3f93b3531f87",
+            "bbbbbbbb-38f5-438d-b8ee-3f93b3531f87",
+            "cccccccc-ed84-4e49-b5df-a9d117bd731f",
+            "dddddddd-ed84-4e49-b5df-a9d117bd731f",
+            "eeeeeeee-38f5-438d-b8ee-3f93b3531f87",
+        ]
+    ],
+    "trp_link_latency": [
+        [0, 50, 100, 150, 200],
+        [0, 0, 100, 150, 200],
+        [0, 0, 0, 150, 200],
+        [0, 0, 0, 0, 200],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_jitter": [
+        [0, 5, 10, 15, 20],
+        [0, 0, 10, 15, 20],
+        [0, 0, 0, 15, 20],
+        [0, 0, 0, 0, 20],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_price_list": [
+        [0, 5, 6, 6, 7],
+        [0, 0, 6, 6, 7],
+        [0, 0, 0, 6, 7],
+        [0, 0, 0, 0, 7],
+        [0, 0, 0, 0, 0],
+    ],
+    "ns_desc": [
+        {"vnf_id": "one", "vnf_price_per_vim": [50, 51, 52, 53, 54]},
+        {"vnf_id": "two", "vnf_price_per_vim": [20, 21, 22, 23, 24]},
+        {"vnf_id": "three", "vnf_price_per_vim": [70, 71, 72, 73, 74]},
+        {"vnf_id": "four", "vnf_price_per_vim": [40, 41, 42, 43, 44]},
+    ],
+    "vld_desc": [
+        {"cp_refs": ["one", "two"], "latency": 150, "jitter": 30},
+        {"cp_refs": ["two", "three"], "latency": 140, "jitter": 30},
+        {"cp_refs": ["three", "four"], "latency": 130, "jitter": 30},
+    ],
+    "generator_data": {"file": __file__, "time": datetime.datetime.now()},
 }
 
 test_ns_placement_data_str_no_vld_constraints = {
-    'vim_accounts': ['vim' + vim_account.replace('-', '_') for vim_account in ['aaaaaaaa-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'bbbbbbbb-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'cccccccc-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'dddddddd-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'eeeeeeee-38f5-438d-b8ee-3f93b3531f87']],
-    'trp_link_latency': [[0, 50, 100, 150, 200], [0, 0, 100, 150, 200], [0, 0, 0, 150, 200], [0, 0, 0, 0, 200],
-                         [0, 0, 0, 0, 0]],
-    'trp_link_jitter': [[0, 5, 10, 15, 20], [0, 0, 10, 15, 20], [0, 0, 0, 15, 20], [0, 0, 0, 0, 20],
-                        [0, 0, 0, 0, 0]],
-    'trp_link_price_list': [[0, 5, 6, 6, 7], [0, 0, 6, 6, 7], [0, 0, 0, 6, 7], [0, 0, 0, 0, 7], [0, 0, 0, 0, 0]],
-    'ns_desc': [
-        {'vnf_id': 'one', 'vnf_price_per_vim': [50, 51, 52, 53, 54]},
-        {'vnf_id': 'two', 'vnf_price_per_vim': [20, 21, 22, 23, 24]},
-        {'vnf_id': 'three', 'vnf_price_per_vim': [70, 71, 72, 73, 74]},
-        {'vnf_id': 'four', 'vnf_price_per_vim': [40, 41, 42, 43, 44]}],
-    'vld_desc': [{'cp_refs': ['one', 'two']},
-                 {'cp_refs': ['two', 'three']},
-                 {'cp_refs': ['three', 'four']}],
-    'generator_data': {'file': __file__, 'time': datetime.datetime.now()}
+    "vim_accounts": [
+        "vim" + vim_account.replace("-", "_")
+        for vim_account in [
+            "aaaaaaaa-38f5-438d-b8ee-3f93b3531f87",
+            "bbbbbbbb-38f5-438d-b8ee-3f93b3531f87",
+            "cccccccc-ed84-4e49-b5df-a9d117bd731f",
+            "dddddddd-ed84-4e49-b5df-a9d117bd731f",
+            "eeeeeeee-38f5-438d-b8ee-3f93b3531f87",
+        ]
+    ],
+    "trp_link_latency": [
+        [0, 50, 100, 150, 200],
+        [0, 0, 100, 150, 200],
+        [0, 0, 0, 150, 200],
+        [0, 0, 0, 0, 200],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_jitter": [
+        [0, 5, 10, 15, 20],
+        [0, 0, 10, 15, 20],
+        [0, 0, 0, 15, 20],
+        [0, 0, 0, 0, 20],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_price_list": [
+        [0, 5, 6, 6, 7],
+        [0, 0, 6, 6, 7],
+        [0, 0, 0, 6, 7],
+        [0, 0, 0, 0, 7],
+        [0, 0, 0, 0, 0],
+    ],
+    "ns_desc": [
+        {"vnf_id": "one", "vnf_price_per_vim": [50, 51, 52, 53, 54]},
+        {"vnf_id": "two", "vnf_price_per_vim": [20, 21, 22, 23, 24]},
+        {"vnf_id": "three", "vnf_price_per_vim": [70, 71, 72, 73, 74]},
+        {"vnf_id": "four", "vnf_price_per_vim": [40, 41, 42, 43, 44]},
+    ],
+    "vld_desc": [
+        {"cp_refs": ["one", "two"]},
+        {"cp_refs": ["two", "three"]},
+        {"cp_refs": ["three", "four"]},
+    ],
+    "generator_data": {"file": __file__, "time": datetime.datetime.now()},
 }
 
 test_ns_placement_data = {
-    'vim_accounts': ['vim' + vim_account.replace('-', '_') for vim_account in ['aaaaaaaa-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'bbbbbbbb-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'cccccccc-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'dddddddd-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'eeeeeeee-38f5-438d-b8ee-3f93b3531f87']],
-    'trp_link_latency': [[0, 50, 100, 150, 200], [0, 0, 100, 150, 200], [0, 0, 0, 150, 200], [0, 0, 0, 0, 200],
-                         [0, 0, 0, 0, 0]],
-    'trp_link_jitter': [[0, 5, 10, 15, 20], [0, 0, 10, 15, 20], [0, 0, 0, 15, 20], [0, 0, 0, 0, 20],
-                        [0, 0, 0, 0, 0]],
-    'trp_link_price_list': [[0, 5, 6, 6, 7], [0, 0, 6, 6, 7], [0, 0, 0, 6, 7], [0, 0, 0, 0, 7], [0, 0, 0, 0, 0]],
-    'ns_desc': [
-        {'vnf_id': '1', 'vnf_price_per_vim': [50, 51, 52, 53, 54]},
-        {'vnf_id': '2', 'vnf_price_per_vim': [20, 21, 22, 23, 24]},
-        {'vnf_id': '3', 'vnf_price_per_vim': [70, 71, 72, 73, 74]},
-        {'vnf_id': '4', 'vnf_price_per_vim': [40, 41, 42, 43, 44]}],
-    'vld_desc': [{'cp_refs': ['1', '2'], 'latency': 150, 'jitter': 30},
-                 {'cp_refs': ['2', '3'], 'latency': 140, 'jitter': 30},
-                 {'cp_refs': ['3', '4'], 'latency': 130, 'jitter': 30}],
-    'generator_data': {'file': __file__, 'time': datetime.datetime.now()}
+    "vim_accounts": [
+        "vim" + vim_account.replace("-", "_")
+        for vim_account in [
+            "aaaaaaaa-38f5-438d-b8ee-3f93b3531f87",
+            "bbbbbbbb-38f5-438d-b8ee-3f93b3531f87",
+            "cccccccc-ed84-4e49-b5df-a9d117bd731f",
+            "dddddddd-ed84-4e49-b5df-a9d117bd731f",
+            "eeeeeeee-38f5-438d-b8ee-3f93b3531f87",
+        ]
+    ],
+    "trp_link_latency": [
+        [0, 50, 100, 150, 200],
+        [0, 0, 100, 150, 200],
+        [0, 0, 0, 150, 200],
+        [0, 0, 0, 0, 200],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_jitter": [
+        [0, 5, 10, 15, 20],
+        [0, 0, 10, 15, 20],
+        [0, 0, 0, 15, 20],
+        [0, 0, 0, 0, 20],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_price_list": [
+        [0, 5, 6, 6, 7],
+        [0, 0, 6, 6, 7],
+        [0, 0, 0, 6, 7],
+        [0, 0, 0, 0, 7],
+        [0, 0, 0, 0, 0],
+    ],
+    "ns_desc": [
+        {"vnf_id": "1", "vnf_price_per_vim": [50, 51, 52, 53, 54]},
+        {"vnf_id": "2", "vnf_price_per_vim": [20, 21, 22, 23, 24]},
+        {"vnf_id": "3", "vnf_price_per_vim": [70, 71, 72, 73, 74]},
+        {"vnf_id": "4", "vnf_price_per_vim": [40, 41, 42, 43, 44]},
+    ],
+    "vld_desc": [
+        {"cp_refs": ["1", "2"], "latency": 150, "jitter": 30},
+        {"cp_refs": ["2", "3"], "latency": 140, "jitter": 30},
+        {"cp_refs": ["3", "4"], "latency": 130, "jitter": 30},
+    ],
+    "generator_data": {"file": __file__, "time": datetime.datetime.now()},
 }
 
 test_ns_placement_data_w_pinning = {
-    'vim_accounts': ['vim' + vim_account.replace('-', '_') for vim_account in ['aaaaaaaa-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'bbbbbbbb-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'cccccccc-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'dddddddd-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'eeeeeeee-38f5-438d-b8ee-3f93b3531f87']],
-    'trp_link_latency': [[0, 50, 100, 150, 200], [0, 0, 100, 150, 200], [0, 0, 0, 150, 200], [0, 0, 0, 0, 200],
-                         [0, 0, 0, 0, 0]],
-    'trp_link_jitter': [[0, 5, 10, 15, 20], [0, 0, 10, 15, 20], [0, 0, 0, 15, 20], [0, 0, 0, 0, 20],
-                        [0, 0, 0, 0, 0]],
-    'trp_link_price_list': [[0, 5, 6, 6, 7], [0, 0, 6, 6, 7], [0, 0, 0, 6, 7], [0, 0, 0, 0, 7], [0, 0, 0, 0, 0]],
-    'ns_desc': [
-        {'vnf_id': '1', 'vnf_price_per_vim': [50, 51, 52, 53, 54]},
-        {'vnf_id': '2', 'vnf_price_per_vim': [20, 21, 22, 23, 24],
-         'vim_account': 'vimeeeeeeee_38f5_438d_b8ee_3f93b3531f87'},
-        {'vnf_id': '3', 'vnf_price_per_vim': [70, 71, 72, 73, 74]},
-        {'vnf_id': '4', 'vnf_price_per_vim': [40, 41, 42, 43, 44],
-         'vim_account': 'vimcccccccc_ed84_4e49_b5df_a9d117bd731f'}],
-    'vld_desc': [{'cp_refs': ['1', '2'], 'latency': 150, 'jitter': 30},
-                 {'cp_refs': ['2', '3'], 'latency': 140, 'jitter': 30},
-                 {'cp_refs': ['3', '4'], 'latency': 130, 'jitter': 30}],
-    'generator_data': {'file': __file__, 'time': datetime.datetime.now()}
+    "vim_accounts": [
+        "vim" + vim_account.replace("-", "_")
+        for vim_account in [
+            "aaaaaaaa-38f5-438d-b8ee-3f93b3531f87",
+            "bbbbbbbb-38f5-438d-b8ee-3f93b3531f87",
+            "cccccccc-ed84-4e49-b5df-a9d117bd731f",
+            "dddddddd-ed84-4e49-b5df-a9d117bd731f",
+            "eeeeeeee-38f5-438d-b8ee-3f93b3531f87",
+        ]
+    ],
+    "trp_link_latency": [
+        [0, 50, 100, 150, 200],
+        [0, 0, 100, 150, 200],
+        [0, 0, 0, 150, 200],
+        [0, 0, 0, 0, 200],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_jitter": [
+        [0, 5, 10, 15, 20],
+        [0, 0, 10, 15, 20],
+        [0, 0, 0, 15, 20],
+        [0, 0, 0, 0, 20],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_price_list": [
+        [0, 5, 6, 6, 7],
+        [0, 0, 6, 6, 7],
+        [0, 0, 0, 6, 7],
+        [0, 0, 0, 0, 7],
+        [0, 0, 0, 0, 0],
+    ],
+    "ns_desc": [
+        {"vnf_id": "1", "vnf_price_per_vim": [50, 51, 52, 53, 54]},
+        {
+            "vnf_id": "2",
+            "vnf_price_per_vim": [20, 21, 22, 23, 24],
+            "vim_account": "vimeeeeeeee_38f5_438d_b8ee_3f93b3531f87",
+        },
+        {"vnf_id": "3", "vnf_price_per_vim": [70, 71, 72, 73, 74]},
+        {
+            "vnf_id": "4",
+            "vnf_price_per_vim": [40, 41, 42, 43, 44],
+            "vim_account": "vimcccccccc_ed84_4e49_b5df_a9d117bd731f",
+        },
+    ],
+    "vld_desc": [
+        {"cp_refs": ["1", "2"], "latency": 150, "jitter": 30},
+        {"cp_refs": ["2", "3"], "latency": 140, "jitter": 30},
+        {"cp_refs": ["3", "4"], "latency": 130, "jitter": 30},
+    ],
+    "generator_data": {"file": __file__, "time": datetime.datetime.now()},
 }
 
 test_ns_placement_data_w_pinning_str = {
-    'vim_accounts': ['vim' + vim_account.replace('-', '_') for vim_account in ['aaaaaaaa-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'bbbbbbbb-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'cccccccc-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'dddddddd-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'eeeeeeee-38f5-438d-b8ee-3f93b3531f87']],
-    'trp_link_latency': [[0, 50, 100, 150, 200], [0, 0, 100, 150, 200], [0, 0, 0, 150, 200], [0, 0, 0, 0, 200],
-                         [0, 0, 0, 0, 0]],
-    'trp_link_jitter': [[0, 5, 10, 15, 20], [0, 0, 10, 15, 20], [0, 0, 0, 15, 20], [0, 0, 0, 0, 20],
-                        [0, 0, 0, 0, 0]],
-    'trp_link_price_list': [[0, 5, 6, 6, 7], [0, 0, 6, 6, 7], [0, 0, 0, 6, 7], [0, 0, 0, 0, 7], [0, 0, 0, 0, 0]],
-    'ns_desc': [
-        {'vnf_id': 'one', 'vnf_price_per_vim': [50, 51, 52, 53, 54]},
-        {'vnf_id': 'two', 'vnf_price_per_vim': [20, 21, 22, 23, 24],
-         'vim_account': 'vimeeeeeeee_38f5_438d_b8ee_3f93b3531f87'},
-        {'vnf_id': 'three', 'vnf_price_per_vim': [70, 71, 72, 73, 74]},
-        {'vnf_id': 'four', 'vnf_price_per_vim': [40, 41, 42, 43, 44],
-         'vim_account': 'vimcccccccc_ed84_4e49_b5df_a9d117bd731f'}],
-    'vld_desc': [{'cp_refs': ['one', 'two'], 'latency': 150, 'jitter': 30},
-                 {'cp_refs': ['two', 'three'], 'latency': 140, 'jitter': 30},
-                 {'cp_refs': ['three', 'four'], 'latency': 130, 'jitter': 30}],
-    'generator_data': {'file': __file__, 'time': datetime.datetime.now()}
+    "vim_accounts": [
+        "vim" + vim_account.replace("-", "_")
+        for vim_account in [
+            "aaaaaaaa-38f5-438d-b8ee-3f93b3531f87",
+            "bbbbbbbb-38f5-438d-b8ee-3f93b3531f87",
+            "cccccccc-ed84-4e49-b5df-a9d117bd731f",
+            "dddddddd-ed84-4e49-b5df-a9d117bd731f",
+            "eeeeeeee-38f5-438d-b8ee-3f93b3531f87",
+        ]
+    ],
+    "trp_link_latency": [
+        [0, 50, 100, 150, 200],
+        [0, 0, 100, 150, 200],
+        [0, 0, 0, 150, 200],
+        [0, 0, 0, 0, 200],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_jitter": [
+        [0, 5, 10, 15, 20],
+        [0, 0, 10, 15, 20],
+        [0, 0, 0, 15, 20],
+        [0, 0, 0, 0, 20],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_price_list": [
+        [0, 5, 6, 6, 7],
+        [0, 0, 6, 6, 7],
+        [0, 0, 0, 6, 7],
+        [0, 0, 0, 0, 7],
+        [0, 0, 0, 0, 0],
+    ],
+    "ns_desc": [
+        {"vnf_id": "one", "vnf_price_per_vim": [50, 51, 52, 53, 54]},
+        {
+            "vnf_id": "two",
+            "vnf_price_per_vim": [20, 21, 22, 23, 24],
+            "vim_account": "vimeeeeeeee_38f5_438d_b8ee_3f93b3531f87",
+        },
+        {"vnf_id": "three", "vnf_price_per_vim": [70, 71, 72, 73, 74]},
+        {
+            "vnf_id": "four",
+            "vnf_price_per_vim": [40, 41, 42, 43, 44],
+            "vim_account": "vimcccccccc_ed84_4e49_b5df_a9d117bd731f",
+        },
+    ],
+    "vld_desc": [
+        {"cp_refs": ["one", "two"], "latency": 150, "jitter": 30},
+        {"cp_refs": ["two", "three"], "latency": 140, "jitter": 30},
+        {"cp_refs": ["three", "four"], "latency": 130, "jitter": 30},
+    ],
+    "generator_data": {"file": __file__, "time": datetime.datetime.now()},
 }
 
 test_ns_placement_data_str_no_vld = {
-    'vim_accounts': ['vim' + vim_account.replace('-', '_') for vim_account in ['aaaaaaaa-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'bbbbbbbb-38f5-438d-b8ee-3f93b3531f87',
-                                                                               'cccccccc-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'dddddddd-ed84-4e49-b5df-a9d117bd731f',
-                                                                               'eeeeeeee-38f5-438d-b8ee-3f93b3531f87']],
-    'trp_link_latency': [[0, 50, 100, 150, 200], [0, 0, 100, 150, 200], [0, 0, 0, 150, 200], [0, 0, 0, 0, 200],
-                         [0, 0, 0, 0, 0]],
-    'trp_link_jitter': [[0, 5, 10, 15, 20], [0, 0, 10, 15, 20], [0, 0, 0, 15, 20], [0, 0, 0, 0, 20],
-                        [0, 0, 0, 0, 0]],
-    'trp_link_price_list': [[0, 5, 6, 6, 7], [0, 0, 6, 6, 7], [0, 0, 0, 6, 7], [0, 0, 0, 0, 7], [0, 0, 0, 0, 0]],
-    'ns_desc': [
-        {'vnf_id': 'one', 'vnf_price_per_vim': [50, 51, 52, 53, 54]}],
-    'vld_desc': [],
-    'generator_data': {'file': __file__, 'time': datetime.datetime.now()}
+    "vim_accounts": [
+        "vim" + vim_account.replace("-", "_")
+        for vim_account in [
+            "aaaaaaaa-38f5-438d-b8ee-3f93b3531f87",
+            "bbbbbbbb-38f5-438d-b8ee-3f93b3531f87",
+            "cccccccc-ed84-4e49-b5df-a9d117bd731f",
+            "dddddddd-ed84-4e49-b5df-a9d117bd731f",
+            "eeeeeeee-38f5-438d-b8ee-3f93b3531f87",
+        ]
+    ],
+    "trp_link_latency": [
+        [0, 50, 100, 150, 200],
+        [0, 0, 100, 150, 200],
+        [0, 0, 0, 150, 200],
+        [0, 0, 0, 0, 200],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_jitter": [
+        [0, 5, 10, 15, 20],
+        [0, 0, 10, 15, 20],
+        [0, 0, 0, 15, 20],
+        [0, 0, 0, 0, 20],
+        [0, 0, 0, 0, 0],
+    ],
+    "trp_link_price_list": [
+        [0, 5, 6, 6, 7],
+        [0, 0, 6, 6, 7],
+        [0, 0, 0, 6, 7],
+        [0, 0, 0, 0, 7],
+        [0, 0, 0, 0, 0],
+    ],
+    "ns_desc": [{"vnf_id": "one", "vnf_price_per_vim": [50, 51, 52, 53, 54]}],
+    "vld_desc": [],
+    "generator_data": {"file": __file__, "time": datetime.datetime.now()},
 }
 
 expected_model_fragment = """
@@ -534,8 +688,11 @@ class TestMznModelGenerator(TestCase):
         mzn_model = mg.create_model(test_ns_placement_data_str)
 
         # so asserting exact content is difficult due to the datetime.now(), therefore we ignore the first lines
-        self.assertTrue(expected_model_fragment_str.replace('\n', '') in
-                        mzn_model.replace('\n', ''), "faulty model generated")
+        self.assertTrue(
+            expected_model_fragment_str.replace("\n", "")
+            in mzn_model.replace("\n", ""),
+            "faulty model generated",
+        )
 
     def test_create_model_no_vld_constraints(self):
         """
@@ -546,24 +703,33 @@ class TestMznModelGenerator(TestCase):
         mzn_model = mg.create_model(test_ns_placement_data_str_no_vld_constraints)
 
         # so asserting exact content is difficult due to the datetime.now(), therefore we ignore the first lines
-        self.assertTrue(expected_model_fragment_str_no_vld_constraints.replace('\n', '') in
-                        mzn_model.replace('\n', ''), "faulty model generated")
+        self.assertTrue(
+            expected_model_fragment_str_no_vld_constraints.replace("\n", "")
+            in mzn_model.replace("\n", ""),
+            "faulty model generated",
+        )
 
     def test_create_model_w_pinning(self):
         mg = MznModelGenerator(logging.getLogger(__name__))
         mzn_model = mg.create_model(test_ns_placement_data_w_pinning_str)
 
         # so asserting exact content is difficult due to the datetime.now(), therefore we ignore the first lines
-        self.assertTrue(expected_model_fragment_w_pinning_str.replace('\n', '') in
-                        mzn_model.replace('\n', ''), "faulty model generated")
+        self.assertTrue(
+            expected_model_fragment_w_pinning_str.replace("\n", "")
+            in mzn_model.replace("\n", ""),
+            "faulty model generated",
+        )
 
     def test_create_model_no_vld(self):
         mg = MznModelGenerator(logging.getLogger(__name__))
         mzn_model = mg.create_model(test_ns_placement_data_str_no_vld)
 
         # so asserting exact content is difficult due to the datetime.now(), therefore we ignore the first lines
-        self.assertTrue(expected_model_fragment_str_no_vld.replace('\n', '') in
-                        mzn_model.replace('\n', ''), "faulty model generated")
+        self.assertTrue(
+            expected_model_fragment_str_no_vld.replace("\n", "")
+            in mzn_model.replace("\n", ""),
+            "faulty model generated",
+        )
 
     def test__load_jinja_template(self):
         """
@@ -573,17 +739,21 @@ class TestMznModelGenerator(TestCase):
         """
         mg = MznModelGenerator(logging.getLogger(__name__))
         template = mg._load_jinja_template()  # Note we use the default template
-        self.assertTrue(isinstance(template, Template), "failed to load jinja2 template")
+        self.assertTrue(
+            isinstance(template, Template), "failed to load jinja2 template"
+        )
 
     def test_vim_account_replace(self):
         mg = MznModelGenerator(logging.getLogger(__name__))
         nspd = test_ns_placement_data_str
         mzn_model = mg.create_model(nspd)
 
-        expected = '%This is the NETWORK RESOURCE MODEL' + '\n' + 'enum  Vims = {' + '\n'
-        for val in test_ns_placement_data_str['vim_accounts']:
-            expected = expected + val.replace('-', '_') + ',\n'
-        expected = expected[:-2] + '}; % The vim-accounts'
+        expected = (
+            "%This is the NETWORK RESOURCE MODEL" + "\n" + "enum  Vims = {" + "\n"
+        )
+        for val in test_ns_placement_data_str["vim_accounts"]:
+            expected = expected + val.replace("-", "_") + ",\n"
+        expected = expected[:-2] + "}; % The vim-accounts"
         res = re.findall(expected, mzn_model)
         self.assertEqual(1, len(res), "vim accounts didnt replace from - to _")
 
@@ -591,10 +761,12 @@ class TestMznModelGenerator(TestCase):
         mg = MznModelGenerator(logging.getLogger(__name__))
         mzn_model = mg.create_model(test_ns_placement_data_str)
 
-        expected = 'array\\[Vims, Vims\\] of int: trp_link_price_list = \\['
-        for price_list in test_ns_placement_data_str['trp_link_price_list']:
-            expected = expected + '\\|' + (str(price_list)[1:-1]).replace(" ", "") + ',\n'
-        expected = expected + '\\|\\]; % Transport link price list'
+        expected = "array\\[Vims, Vims\\] of int: trp_link_price_list = \\["
+        for price_list in test_ns_placement_data_str["trp_link_price_list"]:
+            expected = (
+                expected + "\\|" + (str(price_list)[1:-1]).replace(" ", "") + ",\n"
+            )
+        expected = expected + "\\|\\]; % Transport link price list"
         res = re.findall(expected, mzn_model)
         self.assertEqual(1, len(res), "price list is not correct")
 
@@ -602,10 +774,12 @@ class TestMznModelGenerator(TestCase):
         mg = MznModelGenerator(logging.getLogger(__name__))
         mzn_model = mg.create_model(test_ns_placement_data_str)
 
-        expected = 'array\\[Vims, Vims\\] of int: trp_link_latency = \\['
-        for link_latency in test_ns_placement_data_str['trp_link_latency']:
-            expected = expected + '\\|' + (str(link_latency)[1:-1]).replace(" ", "") + ',\n'
-        expected = expected + '\\|\\]; % Transport link latency between data centers'
+        expected = "array\\[Vims, Vims\\] of int: trp_link_latency = \\["
+        for link_latency in test_ns_placement_data_str["trp_link_latency"]:
+            expected = (
+                expected + "\\|" + (str(link_latency)[1:-1]).replace(" ", "") + ",\n"
+            )
+        expected = expected + "\\|\\]; % Transport link latency between data centers"
         res = re.findall(expected, mzn_model)
         self.assertEqual(1, len(res), "trp_link_latency values is not correct")
 
@@ -613,10 +787,12 @@ class TestMznModelGenerator(TestCase):
         mg = MznModelGenerator(logging.getLogger(__name__))
         mzn_model = mg.create_model(test_ns_placement_data_str)
 
-        expected = 'array\\[Vims, Vims\\] of int: trp_link_jitter = \\['
-        for link_jitter in test_ns_placement_data_str['trp_link_jitter']:
-            expected = expected + '\\|' + (str(link_jitter)[1:-1]).replace(" ", "") + ',\n'
-        expected = expected + '\\|\\]; % Transport link jitter between data centers'
+        expected = "array\\[Vims, Vims\\] of int: trp_link_jitter = \\["
+        for link_jitter in test_ns_placement_data_str["trp_link_jitter"]:
+            expected = (
+                expected + "\\|" + (str(link_jitter)[1:-1]).replace(" ", "") + ",\n"
+            )
+        expected = expected + "\\|\\]; % Transport link jitter between data centers"
 
         res = re.findall(expected, mzn_model)
 
@@ -627,9 +803,13 @@ class TestMznModelGenerator(TestCase):
         mzn_model = mg.create_model(test_ns_placement_data_w_pinning_str)
 
         expected = ""
-        for price_list in test_ns_placement_data_w_pinning_str['ns_desc']:
-            expected += 'array\\[Vims\\] of int: vim_price_list_' + price_list.get('vnf_id') + " = "
-            temp = str(price_list.get('vnf_price_per_vim'))[1:-1].replace(" ", "")
+        for price_list in test_ns_placement_data_w_pinning_str["ns_desc"]:
+            expected += (
+                "array\\[Vims\\] of int: vim_price_list_"
+                + price_list.get("vnf_id")
+                + " = "
+            )
+            temp = str(price_list.get("vnf_price_per_vim"))[1:-1].replace(" ", "")
             expected += "\\[" + temp + "\\];\n"
 
         res = re.findall(expected, mzn_model)
@@ -640,11 +820,17 @@ class TestMznModelGenerator(TestCase):
         mzn_model = mg.create_model(test_ns_placement_data_str)
 
         expected = ""
-        for pin_list in test_ns_placement_data_str['ns_desc']:
-            if pin_list.get('vim_account'):
-                expected += 'Vims: VNF' + pin_list.get('vnf_id') + ' = ' + pin_list.get('vim_account') + ';\n'
+        for pin_list in test_ns_placement_data_str["ns_desc"]:
+            if pin_list.get("vim_account"):
+                expected += (
+                    "Vims: VNF"
+                    + pin_list.get("vnf_id")
+                    + " = "
+                    + pin_list.get("vim_account")
+                    + ";\n"
+                )
             else:
-                expected += 'var Vims: VNF' + pin_list.get('vnf_id') + ';\n'
+                expected += "var Vims: VNF" + pin_list.get("vnf_id") + ";\n"
 
         res = re.findall(expected, mzn_model)
         self.assertEqual(1, len(res), "mzn_model has no pinning")
@@ -654,11 +840,17 @@ class TestMznModelGenerator(TestCase):
         mzn_model = mg.create_model(test_ns_placement_data_w_pinning_str)
 
         expected = ""
-        for pin_list in test_ns_placement_data_w_pinning_str['ns_desc']:
-            if pin_list.get('vim_account'):
-                expected += 'Vims: VNF' + pin_list.get('vnf_id') + ' = ' + pin_list.get('vim_account') + ';\n'
+        for pin_list in test_ns_placement_data_w_pinning_str["ns_desc"]:
+            if pin_list.get("vim_account"):
+                expected += (
+                    "Vims: VNF"
+                    + pin_list.get("vnf_id")
+                    + " = "
+                    + pin_list.get("vim_account")
+                    + ";\n"
+                )
             else:
-                expected += 'var Vims: VNF' + pin_list.get('vnf_id') + ';\n'
+                expected += "var Vims: VNF" + pin_list.get("vnf_id") + ";\n"
 
         res = re.findall(expected, mzn_model)
         self.assertEqual(1, len(res), "mzn_model contains pinning")
@@ -670,15 +862,23 @@ class TestMznModelGenerator(TestCase):
         expected_latency = "constraint trp_link_latency"
         expected_jitter = "constraint trp_link_jitter"
         latency_or_jitter_was_found = 0
-        for l_o_j in test_ns_placement_data_str_no_vld_constraints['vld_desc']:
-            if l_o_j.get('latency') or l_o_j.get('jitter'):
+        for l_o_j in test_ns_placement_data_str_no_vld_constraints["vld_desc"]:
+            if l_o_j.get("latency") or l_o_j.get("jitter"):
                 latency_or_jitter_was_found = 1
 
         res_latency = re.findall(expected_latency, mzn_model)
         res_jitter = re.findall(expected_jitter, mzn_model)
-        self.assertEqual(0, latency_or_jitter_was_found, "Jitter or latency was found in the test input")
-        self.assertEqual(0, len(res_latency), "constraint trp_link_latency was found in mzn_model")
-        self.assertEqual(0, len(res_jitter), "constraint trp_link_latency was found in mzn_model")
+        self.assertEqual(
+            0,
+            latency_or_jitter_was_found,
+            "Jitter or latency was found in the test input",
+        )
+        self.assertEqual(
+            0, len(res_latency), "constraint trp_link_latency was found in mzn_model"
+        )
+        self.assertEqual(
+            0, len(res_jitter), "constraint trp_link_latency was found in mzn_model"
+        )
 
     def test__constraints_for_jitter_and_latency(self):
         mg = MznModelGenerator(logging.getLogger(__name__))
@@ -687,15 +887,35 @@ class TestMznModelGenerator(TestCase):
         expected_latency = ""
         expected_jitter = ""
         latency_or_jitter_was_found = 0
-        for l_o_j in test_ns_placement_data_str['vld_desc']:
-            if not (l_o_j.get('latency') or l_o_j.get('jitter')):
+        for l_o_j in test_ns_placement_data_str["vld_desc"]:
+            if not (l_o_j.get("latency") or l_o_j.get("jitter")):
                 latency_or_jitter_was_found = 1
-            expected_latency += "constraint trp_link_latency" + "\\[VNF" + l_o_j.get('cp_refs')[0] + ", VNF" + \
-                                l_o_j.get('cp_refs')[1] + "\\] \\<= " + str(l_o_j.get('latency')) + ";\n\n"
-
-            expected_jitter += "constraint trp_link_jitter" + "\\[VNF" + l_o_j.get('cp_refs')[0] + ", VNF" + \
-                               l_o_j.get('cp_refs')[1] + "\\] \\<= " + str(l_o_j.get('jitter')) + ";\n\n"
+            expected_latency += (
+                "constraint trp_link_latency"
+                + "\\[VNF"
+                + l_o_j.get("cp_refs")[0]
+                + ", VNF"
+                + l_o_j.get("cp_refs")[1]
+                + "\\] \\<= "
+                + str(l_o_j.get("latency"))
+                + ";\n\n"
+            )
+
+            expected_jitter += (
+                "constraint trp_link_jitter"
+                + "\\[VNF"
+                + l_o_j.get("cp_refs")[0]
+                + ", VNF"
+                + l_o_j.get("cp_refs")[1]
+                + "\\] \\<= "
+                + str(l_o_j.get("jitter"))
+                + ";\n\n"
+            )
 
         res = re.findall(expected_latency + expected_jitter, mzn_model)
-        self.assertEqual(0, latency_or_jitter_was_found, "Jitter or latency was not found in the test input")
+        self.assertEqual(
+            0,
+            latency_or_jitter_was_found,
+            "Jitter or latency was not found in the test input",
+        )
         self.assertEqual(1, len(res), "faulty model generated")