Files
PlantAI-dev/tools/pymol-open-source/testing/tests/api/helping.py
T

51 lines
1.3 KiB
Python
Raw Normal View History

2026-08-03 18:42:47 +08:00
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)