blob: cb5c560dff52b045c99db3d6919424c2e24f211d [file] [log] [blame]
Eduardo Sousaa0117812019-02-05 15:57:09 +00001# Copyright 2018 Whitestack, LLC
2# Copyright 2018 Telefonica S.A.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15#
16# For those usages not covered by the Apache License, Version 2.0 please
17# contact: esousa@whitestack.com or alfonso.tiernosepulveda@telefonica.com
18##
19
Eduardo Sousa4d611d32018-05-09 19:20:37 +010020import http
Eduardo Sousa4d611d32018-05-09 19:20:37 +010021
22from osm_common.fsbase import FsBase, FsException
aticig3dd0db62022-03-04 19:35:45 +030023import pytest
Eduardo Sousa4d611d32018-05-09 19:20:37 +010024
tiernob20a9022018-05-22 12:07:05 +020025
Eduardo Sousa4d611d32018-05-09 19:20:37 +010026def exception_message(message):
27 return "storage exception " + message
28
tiernob20a9022018-05-22 12:07:05 +020029
Eduardo Sousa4d611d32018-05-09 19:20:37 +010030@pytest.fixture
31def fs_base():
32 return FsBase()
33
tiernob20a9022018-05-22 12:07:05 +020034
Eduardo Sousa4d611d32018-05-09 19:20:37 +010035def test_constructor():
36 fs_base = FsBase()
tiernob20a9022018-05-22 12:07:05 +020037 assert fs_base is not None
Eduardo Sousa4d611d32018-05-09 19:20:37 +010038 assert isinstance(fs_base, FsBase)
39
tiernob20a9022018-05-22 12:07:05 +020040
Eduardo Sousa4d611d32018-05-09 19:20:37 +010041def test_get_params(fs_base):
42 params = fs_base.get_params()
Eduardo Sousa4d611d32018-05-09 19:20:37 +010043 assert isinstance(params, dict)
44 assert len(params) == 0
45
tiernob20a9022018-05-22 12:07:05 +020046
Eduardo Sousa4d611d32018-05-09 19:20:37 +010047def test_fs_connect(fs_base):
48 fs_base.fs_connect(None)
49
tiernob20a9022018-05-22 12:07:05 +020050
Eduardo Sousa4d611d32018-05-09 19:20:37 +010051def test_fs_disconnect(fs_base):
52 fs_base.fs_disconnect()
53
tiernob20a9022018-05-22 12:07:05 +020054
Eduardo Sousa4d611d32018-05-09 19:20:37 +010055def test_mkdir(fs_base):
56 with pytest.raises(FsException) as excinfo:
57 fs_base.mkdir(None)
garciadeblas2644b762021-03-24 09:21:01 +010058 assert str(excinfo.value).startswith(
59 exception_message("Method 'mkdir' not implemented")
60 )
Eduardo Sousa4d611d32018-05-09 19:20:37 +010061 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
62
tiernob20a9022018-05-22 12:07:05 +020063
Eduardo Sousa4d611d32018-05-09 19:20:37 +010064def test_file_exists(fs_base):
65 with pytest.raises(FsException) as excinfo:
66 fs_base.file_exists(None)
garciadeblas2644b762021-03-24 09:21:01 +010067 assert str(excinfo.value).startswith(
68 exception_message("Method 'file_exists' not implemented")
69 )
Eduardo Sousa4d611d32018-05-09 19:20:37 +010070 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
71
tiernob20a9022018-05-22 12:07:05 +020072
Eduardo Sousa4d611d32018-05-09 19:20:37 +010073def test_file_size(fs_base):
74 with pytest.raises(FsException) as excinfo:
75 fs_base.file_size(None)
garciadeblas2644b762021-03-24 09:21:01 +010076 assert str(excinfo.value).startswith(
77 exception_message("Method 'file_size' not implemented")
78 )
Eduardo Sousa4d611d32018-05-09 19:20:37 +010079 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
80
tiernob20a9022018-05-22 12:07:05 +020081
Eduardo Sousa4d611d32018-05-09 19:20:37 +010082def test_file_extract(fs_base):
83 with pytest.raises(FsException) as excinfo:
84 fs_base.file_extract(None, None)
garciadeblas2644b762021-03-24 09:21:01 +010085 assert str(excinfo.value).startswith(
86 exception_message("Method 'file_extract' not implemented")
87 )
Eduardo Sousa4d611d32018-05-09 19:20:37 +010088 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
89
tiernob20a9022018-05-22 12:07:05 +020090
Eduardo Sousa4d611d32018-05-09 19:20:37 +010091def test_file_open(fs_base):
92 with pytest.raises(FsException) as excinfo:
93 fs_base.file_open(None, None)
garciadeblas2644b762021-03-24 09:21:01 +010094 assert str(excinfo.value).startswith(
95 exception_message("Method 'file_open' not implemented")
96 )
Eduardo Sousa4d611d32018-05-09 19:20:37 +010097 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
98
tiernob20a9022018-05-22 12:07:05 +020099
Eduardo Sousa4d611d32018-05-09 19:20:37 +0100100def test_file_delete(fs_base):
101 with pytest.raises(FsException) as excinfo:
102 fs_base.file_delete(None, None)
garciadeblas2644b762021-03-24 09:21:01 +0100103 assert str(excinfo.value).startswith(
104 exception_message("Method 'file_delete' not implemented")
105 )
Eduardo Sousa4d611d32018-05-09 19:20:37 +0100106 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR