# Licensed under a 3-clause BSD style license - see LICENSE.rst

import pkgutil


def test_imports():
    """
    This just imports all modules in astropy, making sure they don't have any
    dependencies that sneak through
    """

    def onerror(name):
        # We should raise any legitimate error that occurred, but not
        # any warnings which happen to be caught because of our pytest
        # settings (e.g., DeprecationWarning).
        try:
            raise  # noqa: PLE0704
        except Warning:
            pass

    for imper, nm, ispkg in pkgutil.walk_packages(
        ["astropy"], "astropy.", onerror=onerror
    ):
        imper.find_spec(nm)


def test_toplevel_namespace():
    import astropy

    d = dir(astropy)
    assert "os" not in d
    assert "log" in d
    assert "test" in d
    assert "sys" not in d
