# import moon_manager
 # import moon_manager.api
 import json
-
-
-def get_json(data):
-    return json.loads(data.decode("utf-8"))
+import api.utilities as utilities
 
 
 def get_subjects(client):
     req = client.get("/subjects")
     assert req.status_code == 200
-    subjects = get_json(req.data)
+    subjects = utilities.get_json(req.data)
     assert isinstance(subjects, dict)
     assert "subjects" in subjects
     return subjects
     req = client.post("/subjects", data=json.dumps(data),
                       headers={'Content-Type': 'application/json'})
     assert req.status_code == 200
-    subjects = get_json(req.data)
+    subjects = utilities.get_json(req.data)
     assert isinstance(subjects, dict)
     key = list(subjects["subjects"].keys())[0]
     value = list(subjects["subjects"].values())[0]
 
 
 def test_subject():
-    import moon_manager.server
-    server = moon_manager.server.main()
-    client = server.app.test_client()
+    client = utilities.register_client()
     get_subjects(client)
     add_subjects(client, "testuser")
     add_subjects_without_name(client, "")
 def get_objects(client):
     req = client.get("/objects")
     assert req.status_code == 200
-    objects = get_json(req.data)
+    objects = utilities.get_json(req.data)
     assert isinstance(objects, dict)
     assert "objects" in objects
     return objects
     req = client.post("/objects", data=json.dumps(data),
                       headers={'Content-Type': 'application/json'})
     assert req.status_code == 200
-    objects = get_json(req.data)
+    objects = utilities.get_json(req.data)
     assert isinstance(objects, dict)
     key = list(objects["objects"].keys())[0]
     value = list(objects["objects"].values())[0]
 
 
 def test_objects():
-    import moon_manager.server
-    server = moon_manager.server.main()
-    client = server.app.test_client()
+    client = utilities.register_client()
     get_objects(client)
     add_objects(client, "testuser")
     delete_objects(client, "testuser")
 def get_actions(client):
     req = client.get("/actions")
     assert req.status_code == 200
-    actions = get_json(req.data)
+    actions = utilities.get_json(req.data)
     assert isinstance(actions, dict)
     assert "actions" in actions
     return actions
     req = client.post("/actions", data=json.dumps(data),
                       headers={'Content-Type': 'application/json'})
     assert req.status_code == 200
-    actions = get_json(req.data)
+    actions = utilities.get_json(req.data)
     assert isinstance(actions, dict)
     key = list(actions["actions"].keys())[0]
     value = list(actions["actions"].values())[0]
 
 
 def test_actions():
-    import moon_manager.server
-    server = moon_manager.server.main()
-    client = server.app.test_client()
+    client = utilities.register_client()
     get_actions(client)
     add_actions(client, "testuser")
     delete_actions(client, "testuser")