diff --git a/test/test_api_trace.py b/test/test_api_trace.py
index 6524878..ae70666 100644
--- a/test/test_api_trace.py
+++ b/test/test_api_trace.py
@@ -6,7 +6,7 @@
 
 
 class TestJsonApiTrace(VppTestCase):
-    """ JSON API trace related tests """
+    """JSON API trace related tests"""
 
     @classmethod
     def setUpClass(cls):
@@ -24,24 +24,24 @@
     def test_json_api_trace_save(self):
         self.vapi.show_version()
 
-        fname = 'test_api_trace-%d.json' % self.vpp.pid
+        fname = "test_api_trace-%d.json" % self.vpp.pid
         tmp_api_trace = "/tmp/%s" % fname
-        fpath = '%s/%s' % (self.tempdir, fname)
+        fpath = "%s/%s" % (self.tempdir, fname)
         self.vapi.cli("api trace save-json {}".format(fname))
         os.rename(tmp_api_trace, fpath)
-        with open(fpath, encoding='utf-8') as f:
+        with open(fpath, encoding="utf-8") as f:
             s = f.read()
         trace = json.loads(s)
         found = False
         for o in trace:
-            if o['_msgname'] == 'show_version':
+            if o["_msgname"] == "show_version":
                 found = True
                 break
         self.assertTrue(found)
-        self.assertEquals(o['_msgname'], 'show_version')
+        self.assertEquals(o["_msgname"], "show_version")
 
     def test_json_api_trace_replay(self):
-        fname = '/tmp/create_loop.json'
+        fname = "/tmp/create_loop.json"
         req = """
 [
 {
@@ -50,14 +50,13 @@
         "mac_address": "00:00:00:00:00:00"
 }]
 """
-        with open(fname, 'w') as f:
+        with open(fname, "w") as f:
             f.write(req)
         self.vapi.cli("api trace replay-json {}".format(fname))
-        r = self.vapi.sw_interface_dump(name_filter='loop',
-                                        name_filter_valid=True)
+        r = self.vapi.sw_interface_dump(name_filter="loop", name_filter_valid=True)
         self.assertEqual(len(r), 1)
-        self.assertEqual(r[0].interface_name, 'loop0')
+        self.assertEqual(r[0].interface_name, "loop0")
 
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     unittest.main(testRunner=VppTestRunner)
