mirror of
https://github.com/soxoj/maigret.git
synced 2026-05-06 22:19:01 +00:00
Refactoring: updated data & sites storing, tests added
This commit is contained in:
+81
-29
@@ -2,6 +2,37 @@
|
||||
from maigret.sites import MaigretDatabase
|
||||
|
||||
|
||||
EXAMPLE_DB = {
|
||||
'engines': {
|
||||
"XenForo": {
|
||||
"presenseStrs": ["XenForo"],
|
||||
"site": {
|
||||
"absenceStrs": [
|
||||
"The specified member cannot be found. Please enter a member's entire name.",
|
||||
],
|
||||
"checkType": "message",
|
||||
"errors": {
|
||||
"You must be logged-in to do that.": "Login required"
|
||||
},
|
||||
"url": "{urlMain}{urlSubpath}/members/?username={username}"
|
||||
}
|
||||
},
|
||||
},
|
||||
'sites': {
|
||||
"Amperka": {
|
||||
"engine": "XenForo",
|
||||
"rank": 121613,
|
||||
"tags": [
|
||||
"ru"
|
||||
],
|
||||
"urlMain": "http://forum.amperka.ru",
|
||||
"usernameClaimed": "adam",
|
||||
"usernameUnclaimed": "noonewouldeverusethis7"
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def test_load_empty_db_from_str():
|
||||
db = MaigretDatabase()
|
||||
db.load_from_str('{"engines": {}, "sites": {}}')
|
||||
@@ -12,38 +43,59 @@ def test_load_empty_db_from_str():
|
||||
|
||||
def test_load_valid_db():
|
||||
db = MaigretDatabase()
|
||||
db.load_from_json({
|
||||
'engines': {
|
||||
"XenForo": {
|
||||
"presenseStrs": ["XenForo"],
|
||||
"site": {
|
||||
"errorMsg": [
|
||||
"The specified member cannot be found. Please enter a member's entire name.",
|
||||
],
|
||||
"errorType": "message",
|
||||
"errors": {
|
||||
"You must be logged-in to do that.": "Login required"
|
||||
},
|
||||
"url": "{urlMain}{urlSubpath}/members/?username={username}"
|
||||
}
|
||||
},
|
||||
},
|
||||
'sites': {
|
||||
"Amperka": {
|
||||
"engine": "XenForo",
|
||||
"rank": 121613,
|
||||
"tags": [
|
||||
"ru"
|
||||
],
|
||||
"urlMain": "http://forum.amperka.ru",
|
||||
"username_claimed": "adam",
|
||||
"username_unclaimed": "noonewouldeverusethis7"
|
||||
},
|
||||
}
|
||||
})
|
||||
db.load_from_json(EXAMPLE_DB)
|
||||
|
||||
assert len(db.sites) == 1
|
||||
assert len(db.engines) == 1
|
||||
|
||||
assert db.sites[0].name == 'Amperka'
|
||||
assert db.engines[0].name == 'XenForo'
|
||||
|
||||
|
||||
def test_site_json_dump():
|
||||
db = MaigretDatabase()
|
||||
db.load_from_json(EXAMPLE_DB)
|
||||
|
||||
init_keys = EXAMPLE_DB['sites']['Amperka'].keys()
|
||||
# contains engine data
|
||||
obj_keys = db.sites[0].json.keys()
|
||||
|
||||
assert set(init_keys).issubset(set(obj_keys))
|
||||
|
||||
|
||||
def test_site_correct_initialization():
|
||||
db = MaigretDatabase()
|
||||
db.load_from_json(EXAMPLE_DB)
|
||||
|
||||
xenforo = db.engines[0]
|
||||
assert xenforo.name == 'XenForo'
|
||||
assert xenforo.site['checkType'] == 'message'
|
||||
|
||||
amperka = db.sites[0]
|
||||
assert amperka.name == 'Amperka'
|
||||
assert amperka.check_type == 'message'
|
||||
|
||||
|
||||
def test_site_strip_engine_data():
|
||||
db = MaigretDatabase()
|
||||
db.load_from_json(EXAMPLE_DB)
|
||||
|
||||
amperka = db.sites[0]
|
||||
amperka_stripped = amperka.strip_engine_data()
|
||||
|
||||
assert amperka_stripped.json == EXAMPLE_DB['sites']['Amperka']
|
||||
|
||||
|
||||
def test_saving_site_error():
|
||||
db = MaigretDatabase()
|
||||
|
||||
DB = dict(EXAMPLE_DB)
|
||||
DB['sites']['Amperka']['errors'] = {'error1': 'text1'}
|
||||
|
||||
db.load_from_json(DB)
|
||||
|
||||
amperka = db.sites[0]
|
||||
assert len(amperka.errors) == 2
|
||||
|
||||
assert amperka.strip_engine_data().errors == {'error1': 'text1'}
|
||||
assert amperka.strip_engine_data().json['errors'] == {'error1': 'text1'}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
"""Maigret utils test functions"""
|
||||
from maigret.utils import CaseConverter
|
||||
|
||||
|
||||
def test_case_convert_camel_to_snake():
|
||||
a = 'SnakeCasedString'
|
||||
b = CaseConverter.camel_to_snake(a)
|
||||
|
||||
assert b == 'snake_cased_string'
|
||||
|
||||
def test_case_convert_snake_to_camel():
|
||||
a = 'camel_cased_string'
|
||||
b = CaseConverter.snake_to_camel(a)
|
||||
|
||||
assert b == 'camelCasedString'
|
||||
Reference in New Issue
Block a user