# Test AXScripting the best we can in an automated fashion...
import win32api, os, sys

import win32com.axscript
import win32com.axscript.client

import unittest
import win32com.test.util

verbose = "-v" in sys.argv


class AXScript(win32com.test.util.TestCase):
    def setUp(self):
        file = win32api.GetFullPathName(
            os.path.join(win32com.axscript.client.__path__[0], "pyscript.py")
        )
        from win32com.test.util import RegisterPythonServer

        self.verbose = verbose
        RegisterPythonServer(file, "python", verbose=self.verbose)

    def testHost(self):
        file = win32api.GetFullPathName(
            os.path.join(win32com.axscript.__path__[0], "test\\testHost.py")
        )
        cmd = '%s "%s"' % (win32api.GetModuleFileName(0), file)
        if verbose:
            print("Testing Python Scripting host")
        win32com.test.util.ExecuteShellCommand(cmd, self)

    def testCScript(self):
        file = win32api.GetFullPathName(
            os.path.join(win32com.axscript.__path__[0], "Demos\\Client\\wsh\\test.pys")
        )
        cmd = 'cscript.exe "%s"' % (file)
        if verbose:
            print("Testing Windows Scripting host with Python script")
        win32com.test.util.ExecuteShellCommand(cmd, self)


if __name__ == "__main__":
    win32com.test.util.testmain()
