Code review refactoring
This commit is contained in:
39
tests/test_clipboard.py
Normal file
39
tests/test_clipboard.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import pytest
|
||||
|
||||
from rtv.clipboard import copy_linux, copy_osx
|
||||
from rtv.exceptions import ProgramError
|
||||
|
||||
|
||||
try:
|
||||
from unittest import mock
|
||||
except ImportError:
|
||||
import mock
|
||||
|
||||
|
||||
def test_copy():
|
||||
|
||||
with mock.patch('subprocess.Popen') as Popen, \
|
||||
mock.patch('subprocess.call') as call:
|
||||
|
||||
# Mock out the subprocess calls
|
||||
p = mock.Mock()
|
||||
p.communicate = mock.Mock()
|
||||
Popen.return_value = p
|
||||
|
||||
# If the `which` command can't find a program to use
|
||||
call.return_value = 1 # Returns an error code
|
||||
with pytest.raises(ProgramError):
|
||||
copy_linux('test')
|
||||
|
||||
call.return_value = 0
|
||||
copy_linux('test')
|
||||
assert Popen.call_args[0][0] == ['xsel', '-b', '-i']
|
||||
p.communicate.assert_called_with(input='test'.encode('utf-8'))
|
||||
copy_linux('test ❤')
|
||||
p.communicate.assert_called_with(input='test ❤'.encode('utf-8'))
|
||||
|
||||
copy_osx('test')
|
||||
assert Popen.call_args[0][0] == ['pbcopy', 'w']
|
||||
p.communicate.assert_called_with(input='test'.encode('utf-8'))
|
||||
copy_osx('test ❤')
|
||||
p.communicate.assert_called_with(input='test ❤'.encode('utf-8'))
|
||||
Reference in New Issue
Block a user