1
0
mirror of https://github.com/gryf/weechat-replacer.git synced 2025-12-18 20:10:19 +01:00

Refactoring, fix tests

This commit is contained in:
2021-05-15 17:42:05 +02:00
parent 9c406727e3
commit 30670d6508
2 changed files with 36 additions and 16 deletions

View File

@@ -64,8 +64,10 @@ class Replacer(object):
def __init__(self):
"""Initialize plugin"""
self.replacement_map = {}
self._path = None
self._path = self._locate_replacement_file()
self._get_replacement_map()
def _locate_replacement_file(self):
map_file = "replacement_map.json"
data_dirs = (weechat.info_get("weechat_data_dir", ""),
weechat.info_get("weechat_config_dir", ""),
@@ -73,21 +75,18 @@ class Replacer(object):
for path in data_dirs:
if os.path.exists(os.path.join(path, map_file)):
self._path = os.path.join(path, map_file)
break
version = weechat.info_get("version_number", "") or 0
return os.path.join(path, map_file)
# nothing found. so there is no replacement file. let's assume the
# right file path.
if not path:
version = weechat.info_get("version_number", "") or 0
if version < 0x3020000: # < 3.2.0
path = '%h/' + map_file
self.path = weechat.string_eval_path_home(path, {}, {}, {})
return weechat.string_eval_path_home(path, {}, {}, {})
else:
self.path = os.path.join(weechat.info_get("weechat_data_dir",
""), map_file)
self._get_replacement_map()
return os.path.join(weechat.info_get("weechat_data_dir", ""),
map_file)
def _get_replacement_map(self):
"""Read json file, and assign it to the replacement_map attr"""

View File

@@ -4,6 +4,7 @@
import sys
import os
import unittest
from unittest import mock
import tempfile
@@ -69,6 +70,12 @@ class Weechat(object):
def string_eval_path_home(self, path, pointers, extra_vars, options):
return path
def info_get(self, key, args):
_map = {'weechat_data_dir': None,
'weechat_config_dir': None,
'version_number': 0x3020000}
return _map.get(key)
weechat = Weechat()
sys.modules['weechat'] = weechat
@@ -78,11 +85,14 @@ import replacer
class TestReplacer(unittest.TestCase):
def setUp(self):
@mock.patch('replacer.Replacer._locate_replacement_file')
def setUp(self, rfile):
fd, fname = tempfile.mkstemp()
os.close(fd)
rfile.return_value = fname
self._path = fname
self.repl = replacer.Replacer(self._path)
self.repl = replacer.Replacer()
def tearDown(self):
self.repl = None
@@ -104,6 +114,7 @@ class TestReplacer(unittest.TestCase):
self.assertTrue(self.repl.delete('foo'))
self.assertDictEqual(self.repl.replacement_map, {})
class TestDummyTests(unittest.TestCase):
"""
This, somehow stupid test ensures, that process of reading default
@@ -112,15 +123,22 @@ class TestDummyTests(unittest.TestCase):
def tearDown(self):
replacer.Replacer.self_object = None
def test_init(self):
@mock.patch('replacer.Replacer._locate_replacement_file')
def test_init(self, rfile):
rfile.return_value = 'dummy_path'
repl = replacer.Replacer()
self.assertIsInstance(repl.replacement_map, dict)
def test_main(self):
@mock.patch('replacer.Replacer._locate_replacement_file')
def test_main(self, rfile):
rfile.return_value = 'dummy_path'
replacer.Replacer.self_object = replacer.Replacer()
replacer.main()
def test_injector(self):
@mock.patch('replacer.Replacer._locate_replacement_file')
def test_injector(self, rfile):
rfile.return_value = 'dummy_path'
def fun(first, *args, **kwargs):
return first
@@ -132,11 +150,14 @@ class TestDummyTests(unittest.TestCase):
class TestFunctions(unittest.TestCase):
def setUp(self):
@mock.patch('replacer.Replacer._locate_replacement_file')
def setUp(self, rfile):
fd, fname = tempfile.mkstemp()
os.close(fd)
self._path = fname
replacer.Replacer.self_object = replacer.Replacer(self._path)
rfile.return_value = fname
replacer.Replacer.self_object = replacer.Replacer()
self.rc = replacer.Replacer
def tearDown(self):