1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
import sys
import unittest
from pymol import cmd, testing, stored
try:
from io import StringIO
from unittest.mock import patch
mock_not_available = False
except ImportError:
mock_not_available = True
def func_with_indented_help():
'''
USAGE
foo
SEE ALSO
https://github.com/schrodinger/pymol-open-source/issues/116
'''
cmd.extend('func_with_indented_help', func_with_indented_help)
@unittest.skipIf(mock_not_available, "unittest.mock not available")
class TestHelping(testing.PyMOLTestCase):
def testApi(self):
with patch('sys.stdout', new=StringIO()) as out:
cmd.api("color")
self.assertTrue('API: pymol.viewing.color' in out.getvalue())
def testHelp(self):
with patch('sys.stdout', new=StringIO()) as out:
cmd.help('color')
self.assertTrue('USAGE\n\n color color' in out.getvalue())
@testing.requires_version('2.5')
def testHelp_dedent(self):
with patch('sys.stdout', new=StringIO()) as out:
cmd.help('func_with_indented_help')
self.assertTrue('USAGE\n\n foo\n\nSEE' in out.getvalue())
@testing.requires_version('2.4')
@testing.requires('incentive')
def testHelpSetting(self):
out = cmd.help_setting('transparency')
self.assertTrue('controls surface transparency' in out)
|