|
@@ -28,7 +28,14 @@ class TestLocalFileUploadAPI:
|
|
|
@patch("desktop.lib.importer.api.LocalFileUploadSerializer")
|
|
@patch("desktop.lib.importer.api.LocalFileUploadSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.local_file_upload")
|
|
@patch("desktop.lib.importer.api.operations.local_file_upload")
|
|
|
def test_local_file_upload_success(self, mock_local_file_upload, mock_serializer_class):
|
|
def test_local_file_upload_success(self, mock_local_file_upload, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data={"file": SimpleUploadedFile("test.csv", b"content")})
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_file = SimpleUploadedFile("test.csv", b"content")
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file = mock_file
|
|
|
|
|
+ mock_schema.filename = "test.csv"
|
|
|
|
|
+ mock_schema.filesize = 7
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_local_file_upload.return_value = {"file_path": "/tmp/user_12345_test.csv"}
|
|
mock_local_file_upload.return_value = {"file_path": "/tmp/user_12345_test.csv"}
|
|
@@ -40,7 +47,7 @@ class TestLocalFileUploadAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_201_CREATED
|
|
assert response.status_code == status.HTTP_201_CREATED
|
|
|
assert response.data == {"file_path": "/tmp/user_12345_test.csv"}
|
|
assert response.data == {"file_path": "/tmp/user_12345_test.csv"}
|
|
|
- mock_local_file_upload.assert_called_once_with(mock_serializer.validated_data["file"], "test_user")
|
|
|
|
|
|
|
+ mock_local_file_upload.assert_called_once_with(mock_schema, "test_user")
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.LocalFileUploadSerializer")
|
|
@patch("desktop.lib.importer.api.LocalFileUploadSerializer")
|
|
|
def test_local_file_upload_invalid_data(self, mock_serializer_class):
|
|
def test_local_file_upload_invalid_data(self, mock_serializer_class):
|
|
@@ -58,7 +65,14 @@ class TestLocalFileUploadAPI:
|
|
|
@patch("desktop.lib.importer.api.LocalFileUploadSerializer")
|
|
@patch("desktop.lib.importer.api.LocalFileUploadSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.local_file_upload")
|
|
@patch("desktop.lib.importer.api.operations.local_file_upload")
|
|
|
def test_local_file_upload_operation_error(self, mock_local_file_upload, mock_serializer_class):
|
|
def test_local_file_upload_operation_error(self, mock_local_file_upload, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data={"file": SimpleUploadedFile("test.csv", b"content")})
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_file = SimpleUploadedFile("test.csv", b"content")
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file = mock_file
|
|
|
|
|
+ mock_schema.filename = "test.csv"
|
|
|
|
|
+ mock_schema.filesize = 7
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_local_file_upload.side_effect = IOError("Operation error")
|
|
mock_local_file_upload.side_effect = IOError("Operation error")
|
|
@@ -76,9 +90,12 @@ class TestGuessFileMetadataAPI:
|
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
|
def test_guess_csv_file_metadata_success(self, mock_guess_file_metadata, mock_serializer_class):
|
|
def test_guess_csv_file_metadata_success(self, mock_guess_file_metadata, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "/path/to/test.csv", "import_type": "local"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_metadata.return_value = {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
mock_guess_file_metadata.return_value = {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
@@ -92,14 +109,17 @@ class TestGuessFileMetadataAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
assert response.data == {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
|
- mock_guess_file_metadata.assert_called_once_with(file_path="/path/to/test.csv", import_type="local", fs=None)
|
|
|
|
|
|
|
+ mock_guess_file_metadata.assert_called_once_with(data=mock_schema, fs=None)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
|
def test_guess_excel_file_metadata_success(self, mock_guess_file_metadata, mock_serializer_class):
|
|
def test_guess_excel_file_metadata_success(self, mock_guess_file_metadata, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "/path/to/test.xlsx", "import_type": "local"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.xlsx"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_metadata.return_value = {"type": "excel", "sheet_names": ["Sheet1", "Sheet2"]}
|
|
mock_guess_file_metadata.return_value = {"type": "excel", "sheet_names": ["Sheet1", "Sheet2"]}
|
|
@@ -113,14 +133,17 @@ class TestGuessFileMetadataAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"type": "excel", "sheet_names": ["Sheet1", "Sheet2"]}
|
|
assert response.data == {"type": "excel", "sheet_names": ["Sheet1", "Sheet2"]}
|
|
|
- mock_guess_file_metadata.assert_called_once_with(file_path="/path/to/test.xlsx", import_type="local", fs=None)
|
|
|
|
|
|
|
+ mock_guess_file_metadata.assert_called_once_with(data=mock_schema, fs=None)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
|
def test_guess_file_metadata_remote_csv_file(self, mock_guess_file_metadata, mock_serializer_class):
|
|
def test_guess_file_metadata_remote_csv_file(self, mock_guess_file_metadata, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "s3a://bucket/user/test_user/test.csv", "import_type": "remote"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "s3a://bucket/user/test_user/test.csv"
|
|
|
|
|
+ mock_schema.import_type = "remote"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_metadata.return_value = {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
mock_guess_file_metadata.return_value = {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
@@ -135,7 +158,7 @@ class TestGuessFileMetadataAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
assert response.data == {"type": "csv", "field_separator": ",", "quote_char": '"', "record_separator": "\n"}
|
|
|
- mock_guess_file_metadata.assert_called_once_with(file_path="s3a://bucket/user/test_user/test.csv", import_type="remote", fs=mock_fs)
|
|
|
|
|
|
|
+ mock_guess_file_metadata.assert_called_once_with(data=mock_schema, fs=mock_fs)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
|
def test_guess_file_metadata_invalid_data(self, mock_serializer_class):
|
|
def test_guess_file_metadata_invalid_data(self, mock_serializer_class):
|
|
@@ -154,9 +177,12 @@ class TestGuessFileMetadataAPI:
|
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
|
def test_guess_file_metadata_value_error(self, mock_guess_file_metadata, mock_serializer_class):
|
|
def test_guess_file_metadata_value_error(self, mock_guess_file_metadata, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "/path/to/test.csv", "import_type": "local"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_metadata.side_effect = ValueError("File does not exist")
|
|
mock_guess_file_metadata.side_effect = ValueError("File does not exist")
|
|
@@ -174,9 +200,12 @@ class TestGuessFileMetadataAPI:
|
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileMetadataSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_metadata")
|
|
|
def test_guess_file_metadata_operation_error(self, mock_guess_file_metadata, mock_serializer_class):
|
|
def test_guess_file_metadata_operation_error(self, mock_guess_file_metadata, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "/path/to/test.csv", "import_type": "local"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_metadata.side_effect = RuntimeError("Operation error")
|
|
mock_guess_file_metadata.side_effect = RuntimeError("Operation error")
|
|
@@ -196,19 +225,18 @@ class TestPreviewFileAPI:
|
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
|
def test_preview_csv_file_success(self, mock_preview_file, mock_serializer_class):
|
|
def test_preview_csv_file_success(self, mock_preview_file, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={
|
|
|
|
|
- "file_path": "/path/to/test.csv",
|
|
|
|
|
- "file_type": "csv",
|
|
|
|
|
- "import_type": "local",
|
|
|
|
|
- "sql_dialect": "hive",
|
|
|
|
|
- "has_header": True,
|
|
|
|
|
- "field_separator": ",",
|
|
|
|
|
- "quote_char": '"',
|
|
|
|
|
- "record_separator": "\n",
|
|
|
|
|
- },
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+ mock_schema.has_header = True
|
|
|
|
|
+ mock_schema.field_separator = ","
|
|
|
|
|
+ mock_schema.quote_char = '"'
|
|
|
|
|
+ mock_schema.record_separator = "\n"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_preview_result = {
|
|
mock_preview_result = {
|
|
@@ -227,32 +255,21 @@ class TestPreviewFileAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == mock_preview_result
|
|
assert response.data == mock_preview_result
|
|
|
- mock_preview_file.assert_called_once_with(
|
|
|
|
|
- file_path="/path/to/test.csv",
|
|
|
|
|
- file_type="csv",
|
|
|
|
|
- import_type="local",
|
|
|
|
|
- sql_dialect="hive",
|
|
|
|
|
- has_header=True,
|
|
|
|
|
- field_separator=",",
|
|
|
|
|
- quote_char='"',
|
|
|
|
|
- record_separator="\n",
|
|
|
|
|
- fs=None,
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_preview_file.assert_called_once_with(data=mock_schema, fs=None)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
|
def test_preview_excel_file_success(self, mock_preview_file, mock_serializer_class):
|
|
def test_preview_excel_file_success(self, mock_preview_file, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={
|
|
|
|
|
- "file_path": "/path/to/test.xlsx",
|
|
|
|
|
- "file_type": "excel",
|
|
|
|
|
- "import_type": "local",
|
|
|
|
|
- "sql_dialect": "hive",
|
|
|
|
|
- "has_header": True,
|
|
|
|
|
- "sheet_name": "Sheet1",
|
|
|
|
|
- },
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.xlsx"
|
|
|
|
|
+ mock_schema.file_type = "excel"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+ mock_schema.has_header = True
|
|
|
|
|
+ mock_schema.sheet_name = "Sheet1"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_preview_result = {
|
|
mock_preview_result = {
|
|
@@ -271,32 +288,23 @@ class TestPreviewFileAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == mock_preview_result
|
|
assert response.data == mock_preview_result
|
|
|
- mock_preview_file.assert_called_once_with(
|
|
|
|
|
- file_path="/path/to/test.xlsx",
|
|
|
|
|
- file_type="excel",
|
|
|
|
|
- import_type="local",
|
|
|
|
|
- sql_dialect="hive",
|
|
|
|
|
- has_header=True,
|
|
|
|
|
- sheet_name="Sheet1",
|
|
|
|
|
- fs=None,
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_preview_file.assert_called_once_with(data=mock_schema, fs=None)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
|
def test_preview_tsv_file_success(self, mock_preview_file, mock_serializer_class):
|
|
def test_preview_tsv_file_success(self, mock_preview_file, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={
|
|
|
|
|
- "file_path": "/path/to/test.tsv",
|
|
|
|
|
- "file_type": "tsv",
|
|
|
|
|
- "import_type": "local",
|
|
|
|
|
- "sql_dialect": "impala",
|
|
|
|
|
- "has_header": True,
|
|
|
|
|
- "field_separator": "\t",
|
|
|
|
|
- "quote_char": '"',
|
|
|
|
|
- "record_separator": "\n",
|
|
|
|
|
- },
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.tsv"
|
|
|
|
|
+ mock_schema.file_type = "tsv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sql_dialect = "impala"
|
|
|
|
|
+ mock_schema.has_header = True
|
|
|
|
|
+ mock_schema.field_separator = "\t"
|
|
|
|
|
+ mock_schema.quote_char = '"'
|
|
|
|
|
+ mock_schema.record_separator = "\n"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_preview_result = {
|
|
mock_preview_result = {
|
|
@@ -315,34 +323,23 @@ class TestPreviewFileAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == mock_preview_result
|
|
assert response.data == mock_preview_result
|
|
|
- mock_preview_file.assert_called_once_with(
|
|
|
|
|
- file_path="/path/to/test.tsv",
|
|
|
|
|
- file_type="tsv",
|
|
|
|
|
- import_type="local",
|
|
|
|
|
- sql_dialect="impala",
|
|
|
|
|
- has_header=True,
|
|
|
|
|
- field_separator="\t",
|
|
|
|
|
- quote_char='"',
|
|
|
|
|
- record_separator="\n",
|
|
|
|
|
- fs=None,
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_preview_file.assert_called_once_with(data=mock_schema, fs=None)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
|
def test_preview_remote_csv_file_success(self, mock_preview_file, mock_serializer_class):
|
|
def test_preview_remote_csv_file_success(self, mock_preview_file, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={
|
|
|
|
|
- "file_path": "s3a://bucket/user/test_user/test.csv",
|
|
|
|
|
- "file_type": "csv",
|
|
|
|
|
- "import_type": "remote",
|
|
|
|
|
- "sql_dialect": "hive",
|
|
|
|
|
- "has_header": True,
|
|
|
|
|
- "field_separator": ",",
|
|
|
|
|
- "quote_char": '"',
|
|
|
|
|
- "record_separator": "\n",
|
|
|
|
|
- },
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "s3a://bucket/user/test_user/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "remote"
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+ mock_schema.has_header = True
|
|
|
|
|
+ mock_schema.field_separator = ","
|
|
|
|
|
+ mock_schema.quote_char = '"'
|
|
|
|
|
+ mock_schema.record_separator = "\n"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_preview_result = {
|
|
mock_preview_result = {
|
|
@@ -363,17 +360,7 @@ class TestPreviewFileAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == mock_preview_result
|
|
assert response.data == mock_preview_result
|
|
|
- mock_preview_file.assert_called_once_with(
|
|
|
|
|
- file_path="s3a://bucket/user/test_user/test.csv",
|
|
|
|
|
- file_type="csv",
|
|
|
|
|
- import_type="remote",
|
|
|
|
|
- sql_dialect="hive",
|
|
|
|
|
- has_header=True,
|
|
|
|
|
- field_separator=",",
|
|
|
|
|
- quote_char='"',
|
|
|
|
|
- record_separator="\n",
|
|
|
|
|
- fs=mock_fs,
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_preview_file.assert_called_once_with(data=mock_schema, fs=mock_fs)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
|
def test_preview_file_invalid_data(self, mock_serializer_class):
|
|
def test_preview_file_invalid_data(self, mock_serializer_class):
|
|
@@ -406,19 +393,18 @@ class TestPreviewFileAPI:
|
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
|
def test_preview_file_value_error(self, mock_preview_file, mock_serializer_class):
|
|
def test_preview_file_value_error(self, mock_preview_file, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={
|
|
|
|
|
- "file_path": "/path/to/test.csv",
|
|
|
|
|
- "file_type": "csv",
|
|
|
|
|
- "import_type": "local",
|
|
|
|
|
- "sql_dialect": "hive",
|
|
|
|
|
- "has_header": True,
|
|
|
|
|
- "field_separator": ",",
|
|
|
|
|
- "quote_char": '"',
|
|
|
|
|
- "record_separator": "\n",
|
|
|
|
|
- },
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+ mock_schema.has_header = True
|
|
|
|
|
+ mock_schema.field_separator = ","
|
|
|
|
|
+ mock_schema.quote_char = '"'
|
|
|
|
|
+ mock_schema.record_separator = "\n"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_preview_file.side_effect = ValueError("File does not exist")
|
|
mock_preview_file.side_effect = ValueError("File does not exist")
|
|
@@ -436,19 +422,18 @@ class TestPreviewFileAPI:
|
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
@patch("desktop.lib.importer.api.PreviewFileSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
@patch("desktop.lib.importer.api.operations.preview_file")
|
|
|
def test_preview_file_operation_error(self, mock_preview_file, mock_serializer_class):
|
|
def test_preview_file_operation_error(self, mock_preview_file, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={
|
|
|
|
|
- "file_path": "/path/to/test.csv",
|
|
|
|
|
- "file_type": "csv",
|
|
|
|
|
- "import_type": "local",
|
|
|
|
|
- "sql_dialect": "hive",
|
|
|
|
|
- "has_header": True,
|
|
|
|
|
- "field_separator": ",",
|
|
|
|
|
- "quote_char": '"',
|
|
|
|
|
- "record_separator": "\n",
|
|
|
|
|
- },
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+ mock_schema.has_header = True
|
|
|
|
|
+ mock_schema.field_separator = ","
|
|
|
|
|
+ mock_schema.quote_char = '"'
|
|
|
|
|
+ mock_schema.record_separator = "\n"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_preview_file.side_effect = RuntimeError("Operation error")
|
|
mock_preview_file.side_effect = RuntimeError("Operation error")
|
|
@@ -468,9 +453,14 @@ class TestGuessFileHeaderAPI:
|
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
|
def test_guess_csv_file_header_success(self, mock_guess_file_header, mock_serializer_class):
|
|
def test_guess_csv_file_header_success(self, mock_guess_file_header, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "/path/to/test.csv", "file_type": "csv", "import_type": "local"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sheet_name = None
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_header.return_value = True
|
|
mock_guess_file_header.return_value = True
|
|
@@ -484,17 +474,19 @@ class TestGuessFileHeaderAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"has_header": True}
|
|
assert response.data == {"has_header": True}
|
|
|
- mock_guess_file_header.assert_called_once_with(
|
|
|
|
|
- file_path="/path/to/test.csv", file_type="csv", import_type="local", sheet_name=None, fs=None
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_guess_file_header.assert_called_once_with(data=mock_schema, fs=None)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
|
def test_guess_excel_file_header_success(self, mock_guess_file_header, mock_serializer_class):
|
|
def test_guess_excel_file_header_success(self, mock_guess_file_header, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={"file_path": "/path/to/test.xlsx", "file_type": "excel", "import_type": "local", "sheet_name": "Sheet1"},
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.xlsx"
|
|
|
|
|
+ mock_schema.file_type = "excel"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sheet_name = "Sheet1"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_header.return_value = True
|
|
mock_guess_file_header.return_value = True
|
|
@@ -508,17 +500,19 @@ class TestGuessFileHeaderAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"has_header": True}
|
|
assert response.data == {"has_header": True}
|
|
|
- mock_guess_file_header.assert_called_once_with(
|
|
|
|
|
- file_path="/path/to/test.xlsx", file_type="excel", import_type="local", sheet_name="Sheet1", fs=None
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_guess_file_header.assert_called_once_with(data=mock_schema, fs=None)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
|
def test_guess_remote_csv_file_header_success(self, mock_guess_file_header, mock_serializer_class):
|
|
def test_guess_remote_csv_file_header_success(self, mock_guess_file_header, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={"file_path": "s3a://bucket/user/test_user/test.csv", "file_type": "csv", "import_type": "remote"},
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "s3a://bucket/user/test_user/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "remote"
|
|
|
|
|
+ mock_schema.sheet_name = None
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_header.return_value = True
|
|
mock_guess_file_header.return_value = True
|
|
@@ -533,17 +527,19 @@ class TestGuessFileHeaderAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"has_header": True}
|
|
assert response.data == {"has_header": True}
|
|
|
- mock_guess_file_header.assert_called_once_with(
|
|
|
|
|
- file_path="s3a://bucket/user/test_user/test.csv", file_type="csv", import_type="remote", sheet_name=None, fs=mock_fs
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_guess_file_header.assert_called_once_with(data=mock_schema, fs=mock_fs)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
|
def test_guess_remote_csv_file_header_success_false_value(self, mock_guess_file_header, mock_serializer_class):
|
|
def test_guess_remote_csv_file_header_success_false_value(self, mock_guess_file_header, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True),
|
|
|
|
|
- validated_data={"file_path": "s3a://bucket/user/test_user/test.csv", "file_type": "csv", "import_type": "remote"},
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "s3a://bucket/user/test_user/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "remote"
|
|
|
|
|
+ mock_schema.sheet_name = None
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_header.return_value = False
|
|
mock_guess_file_header.return_value = False
|
|
@@ -558,9 +554,7 @@ class TestGuessFileHeaderAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"has_header": False}
|
|
assert response.data == {"has_header": False}
|
|
|
- mock_guess_file_header.assert_called_once_with(
|
|
|
|
|
- file_path="s3a://bucket/user/test_user/test.csv", file_type="csv", import_type="remote", sheet_name=None, fs=mock_fs
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ mock_guess_file_header.assert_called_once_with(data=mock_schema, fs=mock_fs)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
|
def test_guess_file_header_invalid_data(self, mock_serializer_class):
|
|
def test_guess_file_header_invalid_data(self, mock_serializer_class):
|
|
@@ -579,9 +573,14 @@ class TestGuessFileHeaderAPI:
|
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
|
def test_guess_file_header_value_error(self, mock_guess_file_header, mock_serializer_class):
|
|
def test_guess_file_header_value_error(self, mock_guess_file_header, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "/path/to/test.csv", "file_type": "csv", "import_type": "local"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sheet_name = None
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_header.side_effect = ValueError("File does not exist")
|
|
mock_guess_file_header.side_effect = ValueError("File does not exist")
|
|
@@ -599,9 +598,14 @@ class TestGuessFileHeaderAPI:
|
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
@patch("desktop.lib.importer.api.GuessFileHeaderSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
@patch("desktop.lib.importer.api.operations.guess_file_header")
|
|
|
def test_guess_file_header_operation_error(self, mock_guess_file_header, mock_serializer_class):
|
|
def test_guess_file_header_operation_error(self, mock_guess_file_header, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(
|
|
|
|
|
- is_valid=MagicMock(return_value=True), validated_data={"file_path": "/path/to/test.csv", "file_type": "csv", "import_type": "local"}
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.file_path = "/path/to/test.csv"
|
|
|
|
|
+ mock_schema.file_type = "csv"
|
|
|
|
|
+ mock_schema.import_type = "local"
|
|
|
|
|
+ mock_schema.sheet_name = None
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_guess_file_header.side_effect = RuntimeError("Operation error")
|
|
mock_guess_file_header.side_effect = RuntimeError("Operation error")
|
|
@@ -621,7 +625,11 @@ class TestSqlTypeMappingAPI:
|
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.get_sql_type_mapping")
|
|
@patch("desktop.lib.importer.api.operations.get_sql_type_mapping")
|
|
|
def test_get_sql_type_mapping_success(self, mock_get_sql_type_mapping, mock_serializer_class):
|
|
def test_get_sql_type_mapping_success(self, mock_get_sql_type_mapping, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data={"sql_dialect": "hive"})
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_get_sql_type_mapping.return_value = {"Int32": "INT", "Utf8": "STRING", "Float64": "DOUBLE", "Boolean": "BOOLEAN"}
|
|
mock_get_sql_type_mapping.return_value = {"Int32": "INT", "Utf8": "STRING", "Float64": "DOUBLE", "Boolean": "BOOLEAN"}
|
|
@@ -634,7 +642,7 @@ class TestSqlTypeMappingAPI:
|
|
|
|
|
|
|
|
assert response.status_code == status.HTTP_200_OK
|
|
assert response.status_code == status.HTTP_200_OK
|
|
|
assert response.data == {"Int32": "INT", "Utf8": "STRING", "Float64": "DOUBLE", "Boolean": "BOOLEAN"}
|
|
assert response.data == {"Int32": "INT", "Utf8": "STRING", "Float64": "DOUBLE", "Boolean": "BOOLEAN"}
|
|
|
- mock_get_sql_type_mapping.assert_called_once_with("hive")
|
|
|
|
|
|
|
+ mock_get_sql_type_mapping.assert_called_once_with(mock_schema)
|
|
|
|
|
|
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
|
def test_get_sql_type_mapping_invalid_dialect(self, mock_serializer_class):
|
|
def test_get_sql_type_mapping_invalid_dialect(self, mock_serializer_class):
|
|
@@ -653,7 +661,11 @@ class TestSqlTypeMappingAPI:
|
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.get_sql_type_mapping")
|
|
@patch("desktop.lib.importer.api.operations.get_sql_type_mapping")
|
|
|
def test_get_sql_type_mapping_value_error(self, mock_get_sql_type_mapping, mock_serializer_class):
|
|
def test_get_sql_type_mapping_value_error(self, mock_get_sql_type_mapping, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data={"sql_dialect": "hive"})
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_get_sql_type_mapping.side_effect = ValueError("Unsupported dialect")
|
|
mock_get_sql_type_mapping.side_effect = ValueError("Unsupported dialect")
|
|
@@ -670,7 +682,11 @@ class TestSqlTypeMappingAPI:
|
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
@patch("desktop.lib.importer.api.SqlTypeMapperSerializer")
|
|
|
@patch("desktop.lib.importer.api.operations.get_sql_type_mapping")
|
|
@patch("desktop.lib.importer.api.operations.get_sql_type_mapping")
|
|
|
def test_get_sql_type_mapping_operation_error(self, mock_get_sql_type_mapping, mock_serializer_class):
|
|
def test_get_sql_type_mapping_operation_error(self, mock_get_sql_type_mapping, mock_serializer_class):
|
|
|
- mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data={"sql_dialect": "hive"})
|
|
|
|
|
|
|
+ # Create a mock schema object that will be returned by the serializer
|
|
|
|
|
+ mock_schema = MagicMock()
|
|
|
|
|
+ mock_schema.sql_dialect = "hive"
|
|
|
|
|
+
|
|
|
|
|
+ mock_serializer = MagicMock(is_valid=MagicMock(return_value=True), validated_data=mock_schema)
|
|
|
mock_serializer_class.return_value = mock_serializer
|
|
mock_serializer_class.return_value = mock_serializer
|
|
|
|
|
|
|
|
mock_get_sql_type_mapping.side_effect = RuntimeError("Operation error")
|
|
mock_get_sql_type_mapping.side_effect = RuntimeError("Operation error")
|