[CORD-1502] [CORD-1516] Authenticating the user that is sending the
request and caching it's orm classes
Change-Id: I4754c1395d085ed0cf313c7fffebbd2d0b8c7fd4
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