parent
414043e88e
commit
af207e2604
@ -0,0 +1,84 @@
|
||||
import unittest
|
||||
|
||||
import dotdot
|
||||
|
||||
import pubs
|
||||
from pubs import config
|
||||
from pubs.plugs.alias.alias import (Alias, AliasPlugin, CommandAlias,
|
||||
ShellAlias)
|
||||
|
||||
|
||||
def to_args(arg_str):
|
||||
o = lambda: None # Dirty hack
|
||||
o.prog = 'pubs'
|
||||
o.arguments = arg_str.split(' ')
|
||||
return o
|
||||
|
||||
|
||||
class FakeExecuter(object):
|
||||
|
||||
called = None
|
||||
executed = None
|
||||
|
||||
def call(self, obj, shell=None):
|
||||
self.called = obj
|
||||
|
||||
def execute(self, obj):
|
||||
self.executed = obj
|
||||
|
||||
|
||||
class AliasTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.subprocess = FakeExecuter()
|
||||
pubs.plugs.alias.alias.subprocess = self.subprocess
|
||||
self.cmd_execute = FakeExecuter()
|
||||
pubs.plugs.alias.alias.execute = self.cmd_execute.execute
|
||||
|
||||
def testAlias(self):
|
||||
alias = Alias.create_alias('print', 'open -w lpppp')
|
||||
alias.command(None, to_args('CiteKey'))
|
||||
self.assertIsNone(self.subprocess.called)
|
||||
self.assertEqual(self.cmd_execute.executed,
|
||||
['pubs', 'open', '-w', 'lpppp', 'CiteKey'])
|
||||
|
||||
def testShellAlias(self):
|
||||
"""This actually just test that subprocess.call is called.
|
||||
"""
|
||||
alias = Alias.create_alias('count', '!pubs list -k | wc -l')
|
||||
alias.command(None, to_args(''))
|
||||
self.assertIsNone(self.cmd_execute.executed)
|
||||
self.assertIsNotNone(self.subprocess.called)
|
||||
|
||||
|
||||
class AliasPluginTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.conf = config.load_default_conf()
|
||||
self.conf['plugins']['active'] = ['alias']
|
||||
|
||||
def testAliasPluginCreated(self):
|
||||
self.plugin = AliasPlugin(self.conf)
|
||||
|
||||
def testAliasPluginOneCommnand(self):
|
||||
self.conf['plugins']['alias'] = {'print': 'open -w lpppp'}
|
||||
self.plugin = AliasPlugin(self.conf)
|
||||
self.assertEqual(len(self.plugin.aliases), 1)
|
||||
self.assertEqual(type(self.plugin.aliases[0]), CommandAlias)
|
||||
self.assertEqual(self.plugin.aliases[0].name, 'print')
|
||||
self.assertEqual(self.plugin.aliases[0].definition, 'open -w lpppp')
|
||||
|
||||
def testAliasPluginOneShell(self):
|
||||
self.conf['plugins']['alias'] = {'count': '!pubs list -k | wc -l'}
|
||||
self.plugin = AliasPlugin(self.conf)
|
||||
self.assertEqual(len(self.plugin.aliases), 1)
|
||||
self.assertEqual(type(self.plugin.aliases[0]), ShellAlias)
|
||||
self.assertEqual(self.plugin.aliases[0].name, 'count')
|
||||
self.assertEqual(self.plugin.aliases[0].definition,
|
||||
'pubs list -k | wc -l')
|
||||
|
||||
def testAliasPluginTwoCommnands(self):
|
||||
self.conf['plugins']['alias'] = {'print': 'open -w lpppp',
|
||||
'count': '!pubs list -k | wc -l'}
|
||||
self.plugin = AliasPlugin(self.conf)
|
||||
self.assertEqual(len(self.plugin.aliases), 2)
|
Loading…
Reference in new issue