4decad08d0fcbb51dd42041ccc1cc5b0335e6b6b
[osm/common.git] / osm_common / tests / test_fsbase.py
1 # 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
20 import http
21 import pytest
22
23 from osm_common.fsbase import FsBase, FsException
24
25
26 def exception_message(message):
27 return "storage exception " + message
28
29
30 @pytest.fixture
31 def fs_base():
32 return FsBase()
33
34
35 def test_constructor():
36 fs_base = FsBase()
37 assert fs_base is not None
38 assert isinstance(fs_base, FsBase)
39
40
41 def test_get_params(fs_base):
42 params = fs_base.get_params()
43 assert isinstance(params, dict)
44 assert len(params) == 0
45
46
47 def test_fs_connect(fs_base):
48 fs_base.fs_connect(None)
49
50
51 def test_fs_disconnect(fs_base):
52 fs_base.fs_disconnect()
53
54
55 def test_mkdir(fs_base):
56 with pytest.raises(FsException) as excinfo:
57 fs_base.mkdir(None)
58 assert str(excinfo.value).startswith(exception_message("Method 'mkdir' not implemented"))
59 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
60
61
62 def test_file_exists(fs_base):
63 with pytest.raises(FsException) as excinfo:
64 fs_base.file_exists(None)
65 assert str(excinfo.value).startswith(exception_message("Method 'file_exists' not implemented"))
66 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
67
68
69 def test_file_size(fs_base):
70 with pytest.raises(FsException) as excinfo:
71 fs_base.file_size(None)
72 assert str(excinfo.value).startswith(exception_message("Method 'file_size' not implemented"))
73 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
74
75
76 def test_file_extract(fs_base):
77 with pytest.raises(FsException) as excinfo:
78 fs_base.file_extract(None, None)
79 assert str(excinfo.value).startswith(exception_message("Method 'file_extract' not implemented"))
80 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
81
82
83 def test_file_open(fs_base):
84 with pytest.raises(FsException) as excinfo:
85 fs_base.file_open(None, None)
86 assert str(excinfo.value).startswith(exception_message("Method 'file_open' not implemented"))
87 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR
88
89
90 def test_file_delete(fs_base):
91 with pytest.raises(FsException) as excinfo:
92 fs_base.file_delete(None, None)
93 assert str(excinfo.value).startswith(exception_message("Method 'file_delete' not implemented"))
94 assert excinfo.value.http_code == http.HTTPStatus.INTERNAL_SERVER_ERROR