import sys

# This is a test module for Python.  It looks in the standard
# places for various *.py files.  If these are moved, you must
# change this module too.

try:
    import string
except:
    print """Could not import the standard "string" module.
  Please check your PYTHONPATH environment variable."""
    sys.exit(1)

try:
    import regex_syntax
except:
    print """Could not import the standard "regex_syntax" module.  If this is
  a PC, you should add the dos_8x3 directory to your PYTHONPATH."""
    sys.exit(1)

import os

for dir in sys.path:
    file = os.path.join(dir, "string.py")
    if os.path.isfile(file):
        test = os.path.join(dir, "test")
        if os.path.isdir(test):
            # Add the "test" directory to PYTHONPATH.
            sys.path = sys.path + [test]

import regrtest # Standard Python tester.
regrtest.main()
