def test_dictWithNoEnvStaysTheSame(self):
     conf = {
         "a" : "bb",
         "b" : [1, 2, 3, 4.5, "1231"],
         "c" : {
             "x" : "y"
         }
     }
     self.assertEqual(conf, EnvReplacer.replace(conf))
Beispiel #2
0
def generate_release_notes(configFile):
    requests.packages.urllib3.disable_warnings()
    file = open(configFile, 'r')
    fileContents = file.read()
    releaseNotesConfig = EnvReplacer.replace(json.loads(fileContents))
    currentDir = os.getcwd()

    if not os.path.isabs(releaseNotesConfig["pathToSave"]):
        releaseNotesConfig["pathToSave"] = os.path.join(
            currentDir, releaseNotesConfig["pathToSave"])

    for packageName, conf in releaseNotesConfig["packages"].items():
        if "Releases" in conf:
            releasesConf = conf["Releases"]
            promotedVersionsInfo = JustReleaseNotes.artifacters.factory.create(
                releasesConf).retrievePromotedVersions()
        else:
            print(
                "No artifacter configured: every version tag will be considered a valid release"
            )
            promotedVersionsInfo = {}

        issuesConf = conf["Issues"]
        ticketProvider = JustReleaseNotes.issuers.factory.create(issuesConf)

        directory = os.path.join(releaseNotesConfig["pathToSave"], packageName)

        if "Directory" in conf["Source"]:
            if not os.path.isabs(conf["Source"]["Directory"]):
                conf["Source"]["Directory"] = os.path.join(
                    currentDir, conf["Source"]["Directory"])
        else:
            conf["Source"]["Directory"] = directory

        repo = JustReleaseNotes.sourcers.factory.create(conf["Source"])

        if not os.path.exists(conf["Source"]["Directory"]):
            os.makedirs(conf["Source"]["Directory"])

        generator = ReleaseNotes(conf, ticketProvider, repo,
                                 promotedVersionsInfo)
        writerConfigs = conf["ReleaseNotesWriter"]
        if isinstance(writerConfigs, str):
            generateForOneWriter(generator, ticketProvider, writerConfigs,
                                 directory, None)
        elif hasattr(writerConfigs, '__iter__'):
            for writerConf in writerConfigs:
                path = writerConf["PathToSave"]
                generateForOneWriter(generator, ticketProvider,
                                     writerConf["Provider"],
                                     os.path.dirname(path),
                                     os.path.basename(path))
 def test_dictWithUnicodeEnvRaplacedCorrectly(self):
     os.environ['abc'] = 'xyz'
     os.environ['ab_12'] = "xy99"
     os.environ['AbAb'] = "ZZZ"
     conf = {
         u"a": "ENV[abc]",
         "c": {
             u"x": "env[ab_12]",
             u"d": "Env[AbAb] x eNV[AbAb]"
         }
     }
     expectedConf = {u"a": "xyz", "c": {u"x": "xy99", u"d": "ZZZ x ZZZ"}}
     self.assertEqual(expectedConf, EnvReplacer.replace(conf))
 def test_dictWithUnicodeEnvRaplacedCorrectly(self):
     os.environ['abc'] = 'xyz'
     os.environ['ab_12'] = "xy99"
     os.environ['AbAb'] = "ZZZ"
     conf = {
         u"a" : "ENV[abc]",
         "c" : {
             u"x" : "env[ab_12]",
             u"d" : "Env[AbAb] x eNV[AbAb]"
         }
     }
     expectedConf = {
         u"a" : "xyz",
         "c" : {
             u"x" : "xy99",
             u"d" : "ZZZ x ZZZ"
         }
     }
     self.assertEqual(expectedConf, EnvReplacer.replace(conf))
def generate_release_notes(configFile):
        requests.packages.urllib3.disable_warnings()
        file = open(configFile, 'r')
        fileContents = file.read()
        releaseNotesConfig = EnvReplacer.replace(json.loads(fileContents))
        currentDir = os.getcwd()

        if not os.path.isabs(releaseNotesConfig["pathToSave"]):
            releaseNotesConfig["pathToSave"] = os.path.join(currentDir, releaseNotesConfig["pathToSave"])

        for packageName, conf in releaseNotesConfig["packages"].items():
            if "Releases" in conf:
                releasesConf = conf["Releases"]
                promotedVersionsInfo = JustReleaseNotes.artifacters.factory.create(releasesConf).retrievePromotedVersions()
            else:
                print ("No artifacter configured: every version tag will be considered a valid release")
                promotedVersionsInfo = {}

            issuesConf = conf["Issues"]
            ticketProvider = JustReleaseNotes.issuers.factory.create(issuesConf)

            directory = os.path.join(releaseNotesConfig["pathToSave"],packageName)

            if "Directory" in conf["Source"]:
                if not os.path.isabs(conf["Source"]["Directory"]):
                    conf["Source"]["Directory"] = os.path.join(currentDir, conf["Source"]["Directory"])
            else:
                conf["Source"]["Directory"] = directory

            repo = JustReleaseNotes.sourcers.factory.create(conf["Source"])

            if not os.path.exists(conf["Source"]["Directory"]):
                os.makedirs(conf["Source"]["Directory"])

            generator = ReleaseNotes(conf, ticketProvider, repo, promotedVersionsInfo)
            writerConfigs = conf["ReleaseNotesWriter"]
            if isinstance(writerConfigs, str):
                generateForOneWriter(generator, ticketProvider, writerConfigs, directory, None)
            elif hasattr(writerConfigs, '__iter__'):
                for writerConf in writerConfigs:
                    path = writerConf["PathToSave"]
                    generateForOneWriter(generator, ticketProvider, writerConf["Provider"], os.path.dirname(path), os.path.basename(path))
 def test_dictWithEnvParsedCorrectly(self):
     os.environ['abc'] = 'xyz'
     os.environ['ab_12'] = "xy99"
     os.environ['AbAb'] = "ZZZ"
     conf = {
         "a" : "bb",
         "b" : [1, 2, 3, 4.5, "ENV[abc]"],
         "c" : {
             "x" : "env[ab_12]",
             "d" : "Env[AbAb] x eNV[AbAb]"
         }
     }
     expectedConf = {
         "a" : "bb",
         "b" : [1, 2, 3, 4.5, "xyz"],
         "c" : {
             "x" : "xy99",
             "d" : "ZZZ x ZZZ"
         }
     }
     self.assertEqual(expectedConf, EnvReplacer.replace(conf))
 def test_dictWithEnvParsedCorrectly(self):
     os.environ['abc'] = 'xyz'
     os.environ['ab_12'] = "xy99"
     os.environ['AbAb'] = "ZZZ"
     conf = {
         "a": "bb",
         "b": [1, 2, 3, 4.5, "ENV[abc]"],
         "c": {
             "x": "env[ab_12]",
             "d": "Env[AbAb] x eNV[AbAb]"
         }
     }
     expectedConf = {
         "a": "bb",
         "b": [1, 2, 3, 4.5, "xyz"],
         "c": {
             "x": "xy99",
             "d": "ZZZ x ZZZ"
         }
     }
     self.assertEqual(expectedConf, EnvReplacer.replace(conf))
def generate_release_notes(configFile):
    requests.packages.urllib3.disable_warnings()
    file = open(configFile, "r")
    fileContents = file.read()
    releaseNotesConfig = EnvReplacer.replace(json.loads(fileContents))
    currentDir = os.getcwd()
    if not os.path.isabs(releaseNotesConfig["pathToSave"]):
        releaseNotesConfig["pathToSave"] = os.path.join(currentDir, releaseNotesConfig["pathToSave"])

    for packageName, conf in releaseNotesConfig["packages"].items():
        if "Releases" in conf:
            releasesConf = conf["Releases"]
            promotedVersionsInfo = JustReleaseNotes.artifacters.factory.create(releasesConf).retrievePromotedVersions()
        else:
            print("No artifacter configured: every version tag will be considered a valid release")
            promotedVersionsInfo = {}

        issuesConf = conf["Issues"]
        ticketProvider = JustReleaseNotes.issuers.factory.create(issuesConf)

        directory = os.path.join(releaseNotesConfig["pathToSave"], packageName)
        conf["Source"]["Directory"] = directory
        repo = JustReleaseNotes.sourcers.factory.create(conf["Source"])
        writer = JustReleaseNotes.writers.factory.create(conf["ReleaseNotesWriter"], ticketProvider)

        generator = ReleaseNotes(conf, ticketProvider, writer, repo, promotedVersionsInfo)
        releaseNotes = generator.generateReleaseNotesByPromotedVersions()

        if not os.path.exists(directory):
            os.makedirs(directory)

        fileName = "index{0}".format(writer.getExtension())
        print("\nStoring {0} release notes at {1}".format(packageName, os.path.join(directory, fileName)))
        f = open(os.path.join(directory, fileName), "wb")
        f.write(releaseNotes.encode("utf-8"))
        f.close()
 def test_stringWithInvalidEnvKeyStaysTheSame(self):
     conf = "ENV[ ]"
     self.assertEqual(conf, EnvReplacer.replace(conf))
 def test_listWithNoEnvStaysTheSame(self):
     conf = [1, 2, 3]
     self.assertEqual(conf, EnvReplacer.replace(conf))
 def test_stringWithMixedCaseEnvIsReplaced(self):
     os.environ["a"] = "1"
     os.environ["b"] = "2"
     os.environ["c"] = "3"
     conf = "env[a] Env[b] ENV[c]"
     self.assertEqual("1 2 3", EnvReplacer.replace(conf))
 def test_stringWithMixedCaseEnvIsReplaced(self):
     os.environ["a"] = "1"
     os.environ["b"] = "2"
     os.environ["c"] = "3"
     conf = "env[a] Env[b] ENV[c]"
     self.assertEqual("1 2 3", EnvReplacer.replace(conf))
 def test_stringWithInvalidEnvKeyStaysTheSame(self):
     conf = "ENV[ ]"
     self.assertEqual(conf, EnvReplacer.replace(conf))
 def test_dictWithNoEnvStaysTheSame(self):
     conf = {"a": "bb", "b": [1, 2, 3, 4.5, "1231"], "c": {"x": "y"}}
     self.assertEqual(conf, EnvReplacer.replace(conf))
 def test_primitiveWithNoEnvStaysTheSame(self):
     conf = 1
     self.assertEqual(conf, EnvReplacer.replace(conf))
 def test_listWithNoEnvStaysTheSame(self):
     conf = [1,2,3]
     self.assertEqual(conf, EnvReplacer.replace(conf))
 def test_primitiveWithNoEnvStaysTheSame(self):
     conf = 1
     self.assertEqual(conf, EnvReplacer.replace(conf))