mirror of
https://github.com/cheat/cheat.git
synced 2024-11-23 22:41:35 +01:00
Impelemnt test_sheet.py for sheet module unit test
This commit is contained in:
parent
5cc1c4a9a4
commit
0f8d7bb494
82
cheat/test/test_sheet.py
Normal file
82
cheat/test/test_sheet.py
Normal file
@ -0,0 +1,82 @@
|
||||
from mock import patch
|
||||
import os
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase
|
||||
|
||||
from cheat import sheet
|
||||
|
||||
|
||||
class TestSheet(TestCase):
|
||||
def setUp(self):
|
||||
self.tmp_dir = mkdtemp()
|
||||
|
||||
self.editor = patch('cheat.sheet.editor').start()
|
||||
self.editor.return_value = 'vim'
|
||||
|
||||
self.die = patch('cheat.sheet.die').start()
|
||||
|
||||
self.builtin_path = os.path.join(self.tmp_dir, 'builtin')
|
||||
os.mkdir(self.builtin_path)
|
||||
|
||||
self.default_path = os.path.join(self.tmp_dir, 'default')
|
||||
os.mkdir(self.default_path)
|
||||
self.sheets_default_path = \
|
||||
patch('cheat.sheet.sheets.default_path').start()
|
||||
self.sheets_default_path.return_value = self.default_path
|
||||
|
||||
self.sheets_paths = patch('cheat.sheet.sheets.paths').start()
|
||||
self.sheets_paths.return_value = [
|
||||
self.default_path, self.builtin_path,
|
||||
]
|
||||
|
||||
self.subprocess = patch('cheat.sheet.subprocess').start()
|
||||
|
||||
def test_create_or_edit_when_sheet_inexist(self):
|
||||
sheet.create_or_edit('new')
|
||||
|
||||
self.subprocess.call.assert_called_with([
|
||||
'vim', os.path.join(self.default_path, 'new')])
|
||||
|
||||
def test_create_or_edit_when_sheet_inexist_at_default_path(self):
|
||||
cheat_path = os.path.join(self.builtin_path, 'cheat')
|
||||
with open(cheat_path, 'w') as f:
|
||||
f.write((
|
||||
'cheatsheet for cheat\n'
|
||||
'cheat cheat\n'
|
||||
))
|
||||
|
||||
sheet.create_or_edit('cheat')
|
||||
|
||||
new_cheat_path = os.path.join(self.default_path, 'cheat')
|
||||
self.assertTrue(os.path.exists(new_cheat_path))
|
||||
with open(new_cheat_path, 'r') as f:
|
||||
self.assertEqual(
|
||||
f.read(),
|
||||
('cheatsheet for cheat\n'
|
||||
'cheat cheat\n')
|
||||
)
|
||||
|
||||
self.subprocess.call.assert_called_with([
|
||||
'vim', new_cheat_path])
|
||||
|
||||
def test_create_or_edit_when_sheet_exist_at_default_path(self):
|
||||
cheat_path = os.path.join(self.default_path, 'cheat')
|
||||
open(cheat_path, 'w').close()
|
||||
|
||||
sheet.create_or_edit('cheat')
|
||||
self.subprocess.call.assert_called_with([
|
||||
'vim', cheat_path])
|
||||
|
||||
def test_read(self):
|
||||
cheat_path = os.path.join(self.builtin_path, 'cheat')
|
||||
with open(cheat_path, 'w') as f:
|
||||
f.write((
|
||||
'cheatsheet for cheat\n'
|
||||
'cheat cheat\n'
|
||||
))
|
||||
|
||||
self.assertEqual(
|
||||
sheet.read('cheat'),
|
||||
('cheatsheet for cheat\n'
|
||||
'cheat cheat\n')
|
||||
)
|
Loading…
Reference in New Issue
Block a user