51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
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)
|