# Path: md/defines.py
# class Defines(dict):
#     def __contains__(self, key):
#     def __setitem__(self, key, value):
#     def __getitem__(self, key):
#     def combine(self, overridingDefines):
#     def expand(self, inString):
# def normalizeKey(key, lower=True):
# def surround(name):
# def setOverrideDefines(defs, overrideGroup):
# def __setToolDefines(defs, overrideGroup):
# def __setFlagDefines(defs, overrideGroup):
# def setJobSlotsDefines(defs, jobSlots):
# def setPrefixDefines(defs, prefix):
# 
# Path: md/logger.py
# def secondsToHMS(seconds=0):
# def Logger():
# def setLogger(loggerName="", logOutputDir=""):
# def close():
# def writeMessage(message, targetName="", targetStep="", forceStdOut=False):
# def writeError(message, targetName="", targetStep="", filePath="", lineNumber=0, exitProgram=False):
# def reportSkipped(targetName="", targetStep="", reason=""):
# def reportStart(targetName="", targetStep=""):
# def reportSuccess(targetName="", targetStep="", timeInSeconds=0):
# def reportFailure(targetName="", targetStep="", timeInSeconds=0, returnCode=0, exitProgram=False):
# def getOutFd(targetName="", targetStep=""):
# def getErrorFd(targetName="", targetStep=""):
#     def _writeStdOut(self, message):
#     def _writeStdErr(self, message):
#     def close(self):
#     def writeMessage(self, message, targetName="", targetStep=""):
#     def writeError(self, message, targetName="", targetStep="", filePath="", lineNumber=0, exitProgram=False):
#     def reportSkipped(self, targetName="", targetStep="", reason=""):
#     def reportStart(self, targetName="", targetStep=""):
#     def reportSuccess(self, targetName="", targetStep="", timeInSeconds=0):
#     def reportFailure(self, targetName="", targetStep="", timeInSeconds=0, returnCode=0, exitProgram=False):
#     def getOutFd(self, targetName="", targetStep=""):
#     def getErrorFd(self, targetName="", targetStep=""):
# class LoggerBase(object):


import sys, unittest
from md import defines, logger
        def2 = defines.Defines()
        def2["project"] = "projectResult"
        def2["both"] = "projectResultBoth"
        def2["same"] = "sameResult"

        def1.combine(def2)
        self.assertEquals(def1["options"], "optionsResult", "Define should have been result from def1")
        self.assertEquals(def1["project"], "projectResult", "Define should have been result from def2")
        self.assertEquals(def1["both"], "projectResultBoth", "Define should have been result from def2")
        self.assertEquals(def1["same"], "sameResult", "Define should have been the same result")
        self.assertEquals(def2["project"], "projectResult", "Define should not have changed")
        self.assertEquals(def2["both"], "projectResultBoth", "Define should not have changed")
        self.assertEquals(def2["same"], "sameResult", "Define should not have changed")

    def test_setGet(self):
        def1 = defines.Defines()
        self.assertEquals(def1["one"], "", "Define should have returned empty string")
        def1["one"] = "oneResult"
        self.assertEquals(def1["one"], "oneResult", "Define returned wrong value")
        def1["one"] = "oneResultNew"
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after getting multiple times")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after getting multiple times")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after getting multiple times")
        def1["both"] = "bothResult"
        self.assertEquals(def1["both"], "bothResult", "Define returned wrong value")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after setting new value")

    def test_keys(self):
        def1 = defines.Defines()

# Path: md/defines.py
# class Defines(dict):
#     def __contains__(self, key):
#     def __setitem__(self, key, value):
#     def __getitem__(self, key):
#     def combine(self, overridingDefines):
#     def expand(self, inString):
# def normalizeKey(key, lower=True):
# def surround(name):
# def setOverrideDefines(defs, overrideGroup):
# def __setToolDefines(defs, overrideGroup):
# def __setFlagDefines(defs, overrideGroup):
# def setJobSlotsDefines(defs, jobSlots):
# def setPrefixDefines(defs, prefix):
# 
# Path: md/logger.py
# def secondsToHMS(seconds=0):
# def Logger():
# def setLogger(loggerName="", logOutputDir=""):
# def close():
# def writeMessage(message, targetName="", targetStep="", forceStdOut=False):
# def writeError(message, targetName="", targetStep="", filePath="", lineNumber=0, exitProgram=False):
# def reportSkipped(targetName="", targetStep="", reason=""):
# def reportStart(targetName="", targetStep=""):
# def reportSuccess(targetName="", targetStep="", timeInSeconds=0):
# def reportFailure(targetName="", targetStep="", timeInSeconds=0, returnCode=0, exitProgram=False):
# def getOutFd(targetName="", targetStep=""):
# def getErrorFd(targetName="", targetStep=""):
#     def _writeStdOut(self, message):
#     def _writeStdErr(self, message):
#     def close(self):
#     def writeMessage(self, message, targetName="", targetStep=""):
#     def writeError(self, message, targetName="", targetStep="", filePath="", lineNumber=0, exitProgram=False):
#     def reportSkipped(self, targetName="", targetStep="", reason=""):
#     def reportStart(self, targetName="", targetStep=""):
#     def reportSuccess(self, targetName="", targetStep="", timeInSeconds=0):
#     def reportFailure(self, targetName="", targetStep="", timeInSeconds=0, returnCode=0, exitProgram=False):
#     def getOutFd(self, targetName="", targetStep=""):
#     def getErrorFd(self, targetName="", targetStep=""):
# class LoggerBase(object):


# Path: test/test_defines.py
import sys, unittest
from md import defines, logger

        def2 = defines.Defines()
        def2["project"] = "projectResult"
        def2["both"] = "projectResultBoth"
        def2["same"] = "sameResult"

        def1.combine(def2)
        self.assertEquals(def1["options"], "optionsResult", "Define should have been result from def1")
        self.assertEquals(def1["project"], "projectResult", "Define should have been result from def2")
        self.assertEquals(def1["both"], "projectResultBoth", "Define should have been result from def2")
        self.assertEquals(def1["same"], "sameResult", "Define should have been the same result")
        self.assertEquals(def2["project"], "projectResult", "Define should not have changed")
        self.assertEquals(def2["both"], "projectResultBoth", "Define should not have changed")
        self.assertEquals(def2["same"], "sameResult", "Define should not have changed")

    def test_setGet(self):
        def1 = defines.Defines()
        self.assertEquals(def1["one"], "", "Define should have returned empty string")
        def1["one"] = "oneResult"
        self.assertEquals(def1["one"], "oneResult", "Define returned wrong value")
        def1["one"] = "oneResultNew"
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after getting multiple times")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after getting multiple times")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after getting multiple times")
        def1["both"] = "bothResult"
        self.assertEquals(def1["both"], "bothResult", "Define returned wrong value")
        self.assertEquals(def1["one"], "oneResultNew", "Define returned wrong value after setting new value")

    def test_keys(self):
        def1 = defines.Defines()

        def1["a"] = "aResult"