# -*- coding: utf-8 -*-
# Copyright (C) 2012 Anaconda, Inc
# SPDX-License-Identifier: BSD-3-Clause

""" Test if we can import everything from conda.
This basically tests syntax correctness and whether the internal imports work.
Created to test py3k compatibility.
"""

from __future__ import print_function, division, absolute_import

import os
import sys
import unittest
import conda
from conda.utils import on_win

PREFIX = os.path.dirname(os.path.abspath(conda.__file__))


class TestImportAllConda(unittest.TestCase):

    def _test_import(self, subpackage):
        # Prepare
        prefix = PREFIX
        module_prefix = 'conda'
        if subpackage:
            prefix = os.path.join(prefix, subpackage)
            module_prefix = '%s.%s' % (module_prefix, subpackage)

        # Try importing root
        __import__(module_prefix)

        # Import each module in given (sub)package
        for fname in os.listdir(prefix):
            # Discard files that are not of interest
            if fname.startswith('__'):
                continue
            elif not fname.endswith('.py'):
                continue
            elif fname.startswith('windows') and not on_win:
                continue
            elif fname == 'distro.py':
                continue
            # Import
            modname = module_prefix + '.' + fname.split('.')[0]
            print('importing', modname)
            __import__(modname)


    def test_import_root(self):
        self._test_import('')

    def test_import_cli(self):
        self._test_import('cli')

    def test_import_progressbar(self):
        self._test_import('_vendor')


if __name__ == '__main__':
    unittest.main()
