"""
TEST:      test_addons_toolboxes.py

AUTHOR(S): Vaclav Petras <wenzeslaus gmail com>

PURPOSE:   Test for g.extension toolboxes handling

COPYRIGHT: (C) 2015 Vaclav Petras, 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 os

FULL_TOOLBOXES_OUTPUT = """\
Hydrology (HY)
* r.stream.basins
* r.stream.channel
* r.stream.distance
* r.stream.order
* r.stream.segment
* r.stream.slope
* r.stream.snap
* r.stream.stats
mcda (MC)
* r.mcda.ahp
* r.mcda.roughset
* r.mcda.input
* r.mcda.output
"""


class TestToolboxesMetadata(TestCase):

    url = 'file://' + os.path.abspath('data')

    def test_listing(self):
        """List toolboxes and their content"""
        module = SimpleModule('g.extension', flags='lt', url=self.url)
        self.assertModule(module)
        stdout = decode(module.outputs.stdout)
        self.assertMultiLineEqual(stdout, FULL_TOOLBOXES_OUTPUT)


if __name__ == '__main__':
    test()
