diff --git a/test/test_grpc_models_accessor.py b/test/test_grpc_models_accessor.py
index 03e9285..b30011c 100644
--- a/test/test_grpc_models_accessor.py
+++ b/test/test_grpc_models_accessor.py
@@ -17,11 +17,28 @@
     pass
 
 mock_resources = {
-    'test-model': FakeResource
+    'username~pass': {
+        'test-model': FakeResource
+    }
 }
 
+USERNAME = 'username'
+PASSWORD = 'pass'
+
 class GRPCModelsAccessor_Create_or_update_Test(unittest.TestCase):
 
+    def test_unkown_user(self):
+        """
+        [GRPCModelsAccessor] get_model_from_classname: If a user does not have orm classes, raise
+        """
+        data = {
+            "name": "test"
+        }
+        with self.assertRaises(Exception) as e:
+            GRPCModelsAccessor.get_model_from_classname('i-do-not-exists', data, USERNAME, PASSWORD)
+        self.assertEqual(e.exception.message, "[XOS-TOSCA] User 'username' does not have ready resources")
+
+    @patch.dict(RESOURCES, mock_resources, clear=True)
     def test_unkown_module(self):
         """
         [GRPCModelsAccessor] get_model_from_classname: If a model is not know by the grpc api, raise
@@ -30,7 +47,7 @@
             "name": "test"
         }
         with self.assertRaises(Exception) as e:
-            GRPCModelsAccessor.get_model_from_classname('i-do-not-exists', data)
+            GRPCModelsAccessor.get_model_from_classname('i-do-not-exists', data, USERNAME, PASSWORD)
         self.assertEqual(e.exception.message, "[XOS-TOSCA] The model you are trying to create (name: test, class: i-do-not-exists) is not know by xos-core")
 
     @patch.object(FakeResource.objects, "filter")
@@ -43,7 +60,7 @@
             "name": "test"
         }
         with patch.dict(RESOURCES, mock_resources, clear=True):
-            model = GRPCModelsAccessor.get_model_from_classname('test-model', data)
+            model = GRPCModelsAccessor.get_model_from_classname('test-model', data, USERNAME, PASSWORD)
             mock_filter.assert_called_with(name="test")
             self.assertEqual(model, FakeModel)
 
@@ -56,7 +73,7 @@
             "name": "test"
         }
         with patch.dict(RESOURCES, mock_resources, clear=True):
-            model = GRPCModelsAccessor.get_model_from_classname('test-model', data)
+            model = GRPCModelsAccessor.get_model_from_classname('test-model', data, USERNAME, PASSWORD)
             self.assertEqual(model, FakeExistingModel)
 
     @patch.object(FakeResource.objects, "filter", MagicMock(return_value=['a', 'b']))
@@ -69,12 +86,13 @@
         }
         with patch.dict(RESOURCES, mock_resources, clear=True):
             with self.assertRaises(Exception) as e:
-                GRPCModelsAccessor.get_model_from_classname('test-model', data)
+                GRPCModelsAccessor.get_model_from_classname('test-model', data, USERNAME, PASSWORD)
             self.assertEqual(e.exception.message, "[XOS-Tosca] Model test has multiple instances, I can't handle it")
 
     @patch.dict(RESOURCES, mock_resources, clear=True)
     @patch.object(FakeResource.objects, "filter")
-    def _test_find_model_without_name_property(self, mock_filter):
+    @patch.object(FakeResource.objects, "new")
+    def test_find_model_without_name_property(self, mock_new, mock_filter):
         """
         [GRPCModelsAccessor] get_model_from_classname: should lookup a model by the first property
         """
@@ -82,8 +100,9 @@
             'foo': 'bar',
             'something': 'else'
         }
-        GRPCModelsAccessor.get_model_from_classname('test-model', data)
+        GRPCModelsAccessor.get_model_from_classname('test-model', data, USERNAME, PASSWORD)
         mock_filter.assert_called_with(foo="bar")
+        mock_new.assert_called()
 
 if __name__ == '__main__':
     unittest.main()
\ No newline at end of file
diff --git a/test/test_tosca_parser.py b/test/test_tosca_parser.py
index 4fb2f2b..a7e865e 100644
--- a/test/test_tosca_parser.py
+++ b/test/test_tosca_parser.py
@@ -95,7 +95,7 @@
         [TOSCA_Parser] compute_dependencies: augment the TOSCA nodetemplate with information on requirements (aka related models)
         """
 
-        parser = TOSCA_Parser('')
+        parser = TOSCA_Parser('', 'user', 'pass')
 
         class FakeNode:
             def __init__(self, name, requirements):
@@ -166,7 +166,7 @@
         """
         [TOSCA_Parser] save_recipe_to_tmp_file: should save a TOSCA recipe to a tmp file
         """
-        parser = TOSCA_Parser('')
+        parser = TOSCA_Parser('', 'user', 'pass')
         parser.recipe_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'test_tmp.yaml')
 
         parser.save_recipe_to_tmp_file('my tosca')
diff --git a/test/test_tosca_parser_e2e.py b/test/test_tosca_parser_e2e.py
index 5438c76..aceec43 100644
--- a/test/test_tosca_parser_e2e.py
+++ b/test/test_tosca_parser_e2e.py
@@ -20,7 +20,11 @@
 class FakeUser:
     objects = FakeObj
 
-mock_resources = {
+USERNAME = "username"
+PASSWORD = "pass"
+
+mock_resources = {}
+mock_resources["%s~%s" % (USERNAME, PASSWORD)] = {
     'XOSGuiExtension': FakeGuiExt,
     'Site': FakeSite,
     'User': FakeUser
@@ -54,7 +58,7 @@
         files: /spa/extensions/test/vendor.js, /spa/extensions/test/app.js
 """
 
-        parser = TOSCA_Parser(recipe)
+        parser = TOSCA_Parser(recipe, USERNAME, PASSWORD)
 
         parser.execute()
 
@@ -114,7 +118,7 @@
             relationship: tosca.relationships.BelongsToOne
 """
 
-        parser = TOSCA_Parser(recipe)
+        parser = TOSCA_Parser(recipe, USERNAME, PASSWORD)
 
         parser.execute()
 
@@ -158,7 +162,7 @@
                 must-exist: True
         """
 
-        parser = TOSCA_Parser(recipe)
+        parser = TOSCA_Parser(recipe, USERNAME, PASSWORD)
 
         with self.assertRaises(Exception) as e:
             parser.execute()
