12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- """
- TEST: test_g.search.modules.py
- AUTHOR(S): Jachym Cepicky <jachym.cepicky gmail com>
- PURPOSE: Test g.search.modules script outputs
- COPYRIGHT: (C) 2015 Jachym Cepicky, and by the GRASS Development Team
- This program is free software under the GNU General Public
- License (>=v2). Read the file COPYING that comes with GRASS
- for details.
- """
- from grass.gunittest.case import TestCase
- from grass.gunittest.main import test
- from grass.gunittest.gmodules import SimpleModule
- from grass.script.utils import decode
- import unittest
- try:
- has_termcolor = True
- import termcolor
- except ImportError:
- has_termcolor = False
- class TestSearchModule(TestCase):
- def test_all_output(self):
- module = SimpleModule('g.search.modules', flags="g")
- self.assertModule(module)
- stdout = decode(module.outputs.stdout).split()
- # we expect at least 100 hits since we search for all modules
- assert(len(stdout) > 100)
- def test_terminal_output(self):
- """ """
- module = SimpleModule('g.search.modules', keyword="water")
- self.assertModule(module)
- stdout = decode(module.outputs.stdout)
- self.assertEqual(stdout.split()[0], 'r.basins.fill')
- def test_json_output(self):
- import json
- module = SimpleModule('g.search.modules', keyword="water", flags="j")
- self.assertModule(module)
- stdout = json.loads(decode(module.outputs.stdout))
- self.assertEqual(len(stdout), 6, 'Six modules found')
- self.assertEqual(stdout[3]['name'], 'r.water.outlet', 'r.water.outlet')
- self.assertTrue('keywords' in stdout[3]['attributes'])
- def test_shell_output(self):
- module = SimpleModule('g.search.modules', keyword="water", flags="g")
- self.assertModule(module)
- stdout = decode(module.outputs.stdout).split()
- self.assertEqual(len(stdout), 6)
- self.assertEqual(stdout[3], 'r.water.outlet')
- @unittest.skipUnless(has_termcolor,
- "not supported in this library version")
- def test_colored_terminal(self):
- module = SimpleModule('g.search.modules', keyword="water", flags="c")
- self.assertModule(module)
- stdout = decode(module.outputs.stdout).split()
- self.assertEqual(stdout[0],
- termcolor.colored('r.basins.fill',
- attrs=['bold']))
- def test_manual_pages(self):
- module = SimpleModule('g.search.modules', keyword="kapri", flags="gm")
- self.assertModule(module)
- stdout = decode(module.outputs.stdout).split()
- self.assertEqual(len(stdout), 2)
- if __name__ == '__main__':
- test()
|