def transactional_setup_method(self): self.test_user = TestFactory.create_user('Rest_User') self.test_project = TestFactory.create_project( self.test_user, 'Rest_Project', users=[self.test_user.id]) self.retrieve_resource = RetrieveDatatypeResource() self.get_operations_resource = GetOperationsForDatatypeResource() self.get_data_in_project_resource = GetDataInProjectResource()
class TestDatatypeResource(RestResourceTest): def transactional_setup_method(self): self.test_user = TestFactory.create_user('Rest_User') self.test_project = TestFactory.create_project( self.test_user, 'Rest_Project', users=[self.test_user.id]) self.retrieve_resource = RetrieveDatatypeResource() self.get_operations_resource = GetOperationsForDatatypeResource() self.get_data_in_project_resource = GetDataInProjectResource() def test_server_retrieve_datatype_inexistent_gid(self, mocker): self._mock_user(mocker) datatype_gid = "inexistent-gid" with pytest.raises(InvalidIdentifierException): self.retrieve_resource.get(datatype_gid=datatype_gid) def test_server_retrieve_datatype(self, mocker): self._mock_user(mocker) zip_path = os.path.join(os.path.dirname(tvb_data.__file__), 'connectivity', 'connectivity_96.zip') TestFactory.import_zip_connectivity(self.test_user, self.test_project, zip_path) datatypes_in_project = self.get_data_in_project_resource.get( project_gid=self.test_project.gid) assert type(datatypes_in_project) is list assert len(datatypes_in_project) == 1 assert datatypes_in_project[0].type == ConnectivityIndex().display_type def send_file_dummy(path, as_attachment, attachment_filename): return (path, as_attachment, attachment_filename) # Mock flask.send_file to behave like send_file_dummy mocker.patch('flask.send_file', send_file_dummy) result = self.retrieve_resource.get( datatype_gid=datatypes_in_project[0].gid) assert type(result) is tuple assert result[1] is True assert os.path.basename(result[0]) == os.path.basename(result[2]) def test_server_get_operations_for_datatype(self, mocker): self._mock_user(mocker) zip_path = os.path.join(os.path.dirname(tvb_data.__file__), 'connectivity', 'connectivity_96.zip') TestFactory.import_zip_connectivity(self.test_user, self.test_project, zip_path) datatypes_in_project = self.get_data_in_project_resource.get( project_gid=self.test_project.gid) assert type(datatypes_in_project) is list assert len(datatypes_in_project) == 1 assert datatypes_in_project[0].type == ConnectivityIndex().display_type result = self.get_operations_resource.get( datatype_gid=datatypes_in_project[0].gid) assert type(result) is list assert len(result) > 3 def transactional_teardown_method(self): FilesHelper().remove_project_structure(self.test_project.name)