test: init
This commit is contained in:
parent
fdf45fd114
commit
dd187a1069
5 changed files with 362 additions and 0 deletions
0
tests/httpaste/backend/__init__.py
Normal file
0
tests/httpaste/backend/__init__.py
Normal file
134
tests/httpaste/backend/test__init__.py
Executable file
134
tests/httpaste/backend/test__init__.py
Executable file
|
|
@ -0,0 +1,134 @@
|
|||
#!/usr/bin/env python3
|
||||
import pytest
|
||||
from textwrap import dedent
|
||||
from unittest.mock import mock_open, patch
|
||||
from configparser import ConfigParser
|
||||
from pathlib import Path
|
||||
|
||||
@pytest.fixture
|
||||
def module():
|
||||
|
||||
from httpaste import backend
|
||||
|
||||
return backend
|
||||
|
||||
|
||||
class Test_get_backend_config():
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup(self, module):
|
||||
|
||||
self.func = module.get_backend_config
|
||||
|
||||
def test_default_file(self, module):
|
||||
|
||||
data = dedent("""
|
||||
[backend]
|
||||
type = file
|
||||
|
||||
[backend.file]
|
||||
base_dirname = 'sample_data'
|
||||
""")
|
||||
|
||||
path = Path('/foo')
|
||||
|
||||
configIni = ConfigParser()
|
||||
|
||||
with patch('builtins.open', mock_open(read_data=data)):
|
||||
|
||||
configIni.read(str(path))
|
||||
|
||||
config = self.func(configIni, path)
|
||||
|
||||
assert isinstance(config, module.Config)
|
||||
assert issubclass(config.interface, module.BackendInterface)
|
||||
assert str(config.config.base_dirname) == '/foo/sample_data'
|
||||
|
||||
def test_sqlite(self, module):
|
||||
|
||||
data = dedent("""
|
||||
[backend]
|
||||
type = sqlite
|
||||
|
||||
[backend.sqlite]
|
||||
uri = 'foobar.db'
|
||||
""")
|
||||
|
||||
configIni = ConfigParser()
|
||||
|
||||
with patch('builtins.open', mock_open(read_data=data)):
|
||||
|
||||
configIni.read('void')
|
||||
|
||||
config = self.func(configIni, Path('/foo'))
|
||||
|
||||
assert str(config.config.uri) == '/foo/foobar.db'
|
||||
|
||||
def test_mysql(self, module):
|
||||
|
||||
data = dedent("""
|
||||
[backend]
|
||||
type = mysql
|
||||
|
||||
[backend.mysql]
|
||||
user = 'foo'
|
||||
password = bar
|
||||
host = manana
|
||||
database = test
|
||||
""")
|
||||
|
||||
configIni = ConfigParser()
|
||||
|
||||
with patch('builtins.open', mock_open(read_data=data)):
|
||||
|
||||
configIni.read('void')
|
||||
|
||||
config = self.func(configIni, Path('/foo'))
|
||||
|
||||
assert config.config.user == 'foo'
|
||||
assert config.config.password == 'bar'
|
||||
assert config.config.host == 'manana'
|
||||
assert config.config.database == 'test'
|
||||
|
||||
|
||||
|
||||
#class Test_load():
|
||||
#
|
||||
# @pytest.fixture(autouse=True)
|
||||
# def setup(self, module):
|
||||
#
|
||||
# self.func = module.load
|
||||
#
|
||||
# def test_missing_parameter(self, module):
|
||||
#
|
||||
# config = module.Config()
|
||||
# config.name = 'file'
|
||||
# config.parameters = {}
|
||||
#
|
||||
# with pytest.raises(module.BackendError):
|
||||
# self.func(config)
|
||||
#
|
||||
# def test_unknown_parameter(self, module):
|
||||
#
|
||||
# config = module.Config()
|
||||
# config.name = 'file'
|
||||
# config.parameters = {
|
||||
# 'base_dirname': 'foofoo',
|
||||
# 'foo': 'bar'
|
||||
# }
|
||||
#
|
||||
# with pytest.raises(module.BackendError):
|
||||
# self.func(config)
|
||||
#
|
||||
# def test_file(self, module):
|
||||
#
|
||||
# config = module.Config()
|
||||
# config.name = 'file'
|
||||
# config.parameters = {
|
||||
# 'base_dirname': 'foofoo',
|
||||
# 'user_dirnamea': 'test'
|
||||
# }
|
||||
#
|
||||
# backend = self.func(config)
|
||||
#
|
||||
# assert isinstance(backend, module.BackendInterface)
|
||||
0
tests/httpaste/helper/__init__.py
Normal file
0
tests/httpaste/helper/__init__.py
Normal file
149
tests/httpaste/helper/test_config.py
Normal file
149
tests/httpaste/helper/test_config.py
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
import pytest
|
||||
from typing import NamedTuple
|
||||
from unittest.mock import mock_open, patch
|
||||
from textwrap import dedent
|
||||
from pathlib import Path
|
||||
from configparser import ConfigParser
|
||||
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def module():
|
||||
|
||||
from httpaste.helper import config
|
||||
|
||||
return config
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_aclass():
|
||||
|
||||
class Foobar(NamedTuple):
|
||||
foo: int
|
||||
bar: str = 'test'
|
||||
|
||||
return Foobar
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_aclass_special():
|
||||
|
||||
class Foobar(NamedTuple):
|
||||
foobar: Path
|
||||
|
||||
return Foobar
|
||||
|
||||
|
||||
class Test_typecast():
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup(self, module, mock_aclass):
|
||||
|
||||
self.func = module.typecast
|
||||
|
||||
self.mock_aclass = mock_aclass
|
||||
|
||||
def test_default(self, module):
|
||||
|
||||
foobar = {
|
||||
'foo': '45'
|
||||
}
|
||||
|
||||
result = self.func(foobar, self.mock_aclass)
|
||||
|
||||
assert isinstance(result, dict)
|
||||
|
||||
assert result['foo'] == 45
|
||||
assert result.get('bar') is None
|
||||
|
||||
|
||||
def test_type_mismatch(self, module):
|
||||
|
||||
foobar = {
|
||||
'foo': 'foobar'
|
||||
}
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
|
||||
self.func(foobar, self.mock_aclass)
|
||||
|
||||
|
||||
def test_unknown_key(self, module):
|
||||
|
||||
foobar = {
|
||||
'foo': '45',
|
||||
'foobar': 'foobar'
|
||||
}
|
||||
|
||||
with pytest.raises(KeyError):
|
||||
|
||||
self.func(foobar, self.mock_aclass)
|
||||
|
||||
|
||||
class Test_get_config():
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup(self, module, mock_aclass):
|
||||
|
||||
self.func = module.get_config
|
||||
|
||||
self.mock_aclass = mock_aclass
|
||||
|
||||
def test_default(self):
|
||||
|
||||
data = dedent("""
|
||||
[foobar]
|
||||
foo = 45
|
||||
""")
|
||||
|
||||
configIni = ConfigParser()
|
||||
|
||||
with patch('builtins.open', mock_open(read_data=data)):
|
||||
|
||||
configIni.read(str('void'))
|
||||
|
||||
result = self.func(configIni, 'foobar', self.mock_aclass)
|
||||
|
||||
assert isinstance(result, self.mock_aclass)
|
||||
|
||||
assert result.foo == 45
|
||||
|
||||
def test_relative_path(self, mock_aclass_special):
|
||||
|
||||
data = dedent("""
|
||||
[foobar]
|
||||
foobar = 'bar/foo'
|
||||
""")
|
||||
|
||||
dirname = Path('/foo/bar')
|
||||
|
||||
configIni = ConfigParser()
|
||||
|
||||
with patch('builtins.open', mock_open(read_data=data)):
|
||||
|
||||
configIni.read(str('void'))
|
||||
|
||||
result = self.func(configIni, 'foobar', mock_aclass_special, dirname)
|
||||
|
||||
assert isinstance(result, mock_aclass_special)
|
||||
assert isinstance(result.foobar, Path)
|
||||
assert str(result.foobar) == '/foo/bar/bar/foo'
|
||||
|
||||
def test_absolute_path(self, mock_aclass_special):
|
||||
|
||||
data = dedent("""
|
||||
[foobar]
|
||||
foobar = '/bar/foo'
|
||||
""")
|
||||
|
||||
configIni = ConfigParser()
|
||||
|
||||
with patch('builtins.open', mock_open(read_data=data)):
|
||||
|
||||
configIni.read(str('void'))
|
||||
|
||||
result = self.func(configIni, 'foobar', mock_aclass_special)
|
||||
|
||||
assert isinstance(result, mock_aclass_special)
|
||||
assert isinstance(result.foobar, Path)
|
||||
assert str(result.foobar) == '/bar/foo'
|
||||
79
tests/httpaste/model/test_paste.py
Executable file
79
tests/httpaste/model/test_paste.py
Executable file
|
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/env python3
|
||||
import pytest
|
||||
from textwrap import dedent
|
||||
from unittest.mock import mock_open, patch
|
||||
from configparser import ConfigParser
|
||||
from pathlib import Path
|
||||
|
||||
@pytest.fixture
|
||||
def module():
|
||||
|
||||
from httpaste.model import paste
|
||||
|
||||
return paste
|
||||
|
||||
|
||||
class Test_get_paste_model_config():
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup(self, module):
|
||||
|
||||
self.func = module.get_paste_model_config
|
||||
|
||||
def test_default(self, module):
|
||||
|
||||
data = ''
|
||||
|
||||
configIni = ConfigParser()
|
||||
|
||||
with patch('builtins.open', mock_open(read_data=data)):
|
||||
|
||||
configIni.read('void')
|
||||
|
||||
result = self.func(configIni)
|
||||
|
||||
assert isinstance(result, module._Config)
|
||||
assert isinstance(result.id_size, int), result.id_size
|
||||
assert isinstance(result.key_size, int), result.key_size
|
||||
|
||||
|
||||
#class Test_load():
|
||||
#
|
||||
# @pytest.fixture(autouse=True)
|
||||
# def setup(self, module):
|
||||
#
|
||||
# self.func = module.load
|
||||
#
|
||||
# def test_missing_parameter(self, module):
|
||||
#
|
||||
# config = module.Config()
|
||||
# config.name = 'file'
|
||||
# config.parameters = {}
|
||||
#
|
||||
# with pytest.raises(module.BackendError):
|
||||
# self.func(config)
|
||||
#
|
||||
# def test_unknown_parameter(self, module):
|
||||
#
|
||||
# config = module.Config()
|
||||
# config.name = 'file'
|
||||
# config.parameters = {
|
||||
# 'base_dirname': 'foofoo',
|
||||
# 'foo': 'bar'
|
||||
# }
|
||||
#
|
||||
# with pytest.raises(module.BackendError):
|
||||
# self.func(config)
|
||||
#
|
||||
# def test_file(self, module):
|
||||
#
|
||||
# config = module.Config()
|
||||
# config.name = 'file'
|
||||
# config.parameters = {
|
||||
# 'base_dirname': 'foofoo',
|
||||
# 'user_dirnamea': 'test'
|
||||
# }
|
||||
#
|
||||
# backend = self.func(config)
|
||||
#
|
||||
# assert isinstance(backend, module.BackendInterface)
|
||||
Loading…
Add table
Add a link
Reference in a new issue