def test_printVerbose(capsys):
    logManager.printVerbose("TEST")
    captured = capsys.readouterr()
    assert captured.out == "TEST\n"
    config = configManager.getConfig()
    configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                      sad._CONFIG_VERBOSE_OPTION_, "no")
    logManager.printVerbose("TEST")
    captured = capsys.readouterr()
    assert captured.out == ""
def test_log():
    assert logManager._log()
    config = configManager.getConfig()
    configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                      sad._CONFIG_LOG_OPTION_, "no")
    assert not logManager._log()
    commandManager.runRmDirCommand(sad._CONFIG_DIR_NAME_)
    assert not logManager._log()
    commandManager.runMkdirCommand(sad._CONFIG_DIR_NAME_)
    assert not logManager._log()
    commandManager.runTouchCommand(sad._CONFIG_FILE_PATH)
    assert logManager._log()
    configFile = open(sad._CONFIG_FILE_PATH, 'w')
    configFile.write("[RaveGen]\n")
    configFile.close()
    assert logManager._log()
def test_printLog():
    config = configManager.getConfig()
    configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                      sad._CONFIG_LOG_OPTION_, "no")
    logManager.printLog("TEST")
    assert os.path.exists(sad._LOG_FILE_PATH_)
    logFile = open(sad._LOG_FILE_PATH_, 'r')
    line = logFile.readline()
    logFile.close()
    assert not line
    configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                      sad._CONFIG_LOG_OPTION_, "yes")
    logManager.printLog("TEST")
    logFile = open(sad._LOG_FILE_PATH_, 'r')
    line = logFile.readline()
    logFile.close()
    line = line.split(":")
    assert line[3] == " TEST\n"
Пример #4
0
def test_generateBot(testFlag, hosting):
    projectManager.createInitProject(createBasicModules=True,
                                     hostingOption=hosting)
    if not testFlag:
        with pytest.raises(SystemExit) as pytest_wrapped_e:
            botManager.generateBot(testFlag=testFlag)
        assert pytest_wrapped_e.type == SystemExit
        config = configManager.getConfig()
        configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                          sad._CONFIG_DEPLOY_URL_OPTION, "www.test.com")
    botManager.generateBot(testFlag=testFlag)
    assert os.path.exists(sad._OUTPUT_BOT_DIR_)
    assert os.path.exists(sad.OUTPUT_BOT_PATH)
    headers = utils._getHeaders()
    if testFlag:
        assert headers[sad._HEADER_TOKEN_FLAG] == sad._STR_TRUE_
    else:
        assert headers[sad._HEADER_TOKEN_FLAG] == sad._STR_FALSE_
Пример #5
0
def initConfiguration():
    logManager.printVerbose("Verifying configuration...")
    logManager.printVerbose("Verifying Google Cloud installation...")
    _verifyGAEInstallation()
    logManager.printVerbose("Verifying Curl installation...")
    _verifyCurlInstallation()
    logManager.printVerbose("Verifying Google Cloud login...")
    while True:
        if not _verifyGAELogin():
            logManager.printVerbose("Can't find google account")
            logManager.printVerbose("Google login...")
            _GAELogin()
        else:
            break
    config = configManager.getConfig()
    projectName = configManager.get(config, sad._DEPLOY_GAE_OPTION,
                                    sad._CONFIG_PROJECT_NAME_OPTION_)
    logManager.printVerbose("Verifiying project name...")
    if projectName != None and projectName != sad._INIT_CONFIG_PROJECT_NAME:
        logManager.printVerbose("Project name found: " + projectName)
    else:
        projectName = _getNewGAEName(config)
    if _verifyGAEProject(projectName):
        logManager.printVerbose(
            "The project has already been created in Google Cloud")
        token = configManager.get(config, sad._CONFIG_RAVEGEN_SECTION_,
                                  sad._CONFIG_TOKEN_OPTION_)
        deployUrl = sad._HTTPS_ + projectName + sad._GAE_URL_
        configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                          sad._CONFIG_DEPLOY_URL_OPTION, deployUrl)
        configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                          sad._CONFIG_WEBHOOK_PATH_OPTION, token)
    else:
        logManager.printVerbose("Project hasn't been created in Google Cloud")
        while True:
            _GAECreate(projectName)
            if _verifyGAEProject(projectName):
                token = configManager.get(config, sad._CONFIG_RAVEGEN_SECTION_,
                                          sad._CONFIG_TOKEN_OPTION_)
                deployUrl = sad._HTTPS_ + projectName + sad._GAE_URL_
                configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                                  sad._CONFIG_DEPLOY_URL_OPTION, deployUrl)
                configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                                  sad._CONFIG_WEBHOOK_PATH_OPTION, token)
                break
            logManager.printVerbose(
                "The project can't created in Google Cloud. Read the errors above and chose a new Google Cloud project name"
            )
            projectName = _getNewGAEName(config)
    _GAEsetProject(projectName)
    logManager.printVerbose("All Configurations... OK")
Пример #6
0
def deleteCloudApp():
    config = configManager.getConfig()
    projectName = configManager.get(config, sad._DEPLOY_HEROKU_OPTION,
                                    sad._CONFIG_PROJECT_NAME_OPTION_)
    if projectName != None and projectName != sad._INIT_CONFIG_PROJECT_NAME:
        commandManager.runHerokuDestroyCommand(projectName)
        configManager.set(config, sad._DEPLOY_HEROKU_OPTION,
                          sad._CONFIG_PROJECT_NAME_OPTION_, "")
        configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                          sad._CONFIG_DEPLOY_URL_OPTION, "")
        configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                          sad._CONFIG_WEBHOOK_PATH_OPTION, "")
        configManager.set(config, sad._DEPLOY_HEROKU_OPTION,
                          sad._CONFIG_GIT_OPTION_, "")
Пример #7
0
def _initConfiguration(projectNameFlag=True,
                       initProjectFlag=True,
                       gitInitFlag=True,
                       gitHerokuFlag=-1):
    config = configManager.getConfig()
    if gitInitFlag:
        logManager.printVerbose("Creating git...")
        commandManager.runGitInitCommand()
        gitHerokuFlag = -1
    if projectNameFlag:
        logManager.printVerbose("Project name doesn't found")
        _getNewHerokuName(config)
        initProjectFlag = True
    if initProjectFlag:
        logManager.printVerbose("Project hasn't been created in heroku")
        erroFlag = False
        while True:
            if erroFlag:
                logManager.printVerbose(
                    "The project can't created in heroku. Read the errors above and chose a new heroku project name"
                )
                _getNewHerokuName(config)
            projectName = configManager.get(config, sad._DEPLOY_HEROKU_OPTION,
                                            sad._CONFIG_PROJECT_NAME_OPTION_)
            token = configManager.get(config, sad._CONFIG_RAVEGEN_SECTION_,
                                      sad._CONFIG_TOKEN_OPTION_)
            deployUrl = sad._HTTPS_ + projectName + sad._HEROKU_URL
            gitUrl = sad._HTTPS_ + sad._HEORKU_GIT_URL + projectName + sad._GIT_EXTENTION
            commandManager.runHerokuCreateCommand(projectName)
            if _verifyProject(projectName):
                configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                                  sad._CONFIG_DEPLOY_URL_OPTION, deployUrl)
                configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                                  sad._CONFIG_WEBHOOK_PATH_OPTION, token)
                configManager.set(config, sad._DEPLOY_HEROKU_OPTION,
                                  sad._CONFIG_GIT_OPTION_, gitUrl)
                gitHerokuFlag = _verifyRemoteHeroku(gitUrl)
                break
            else:
                erroFlag = True
    if gitHerokuFlag == -1:
        logManager.printVerbose("Adding git remote heroku...")
        gitUrl = configManager.get(config, sad._DEPLOY_HEROKU_OPTION,
                                   sad._CONFIG_GIT_OPTION_)
        commandManager.runGitAddRemoteCommand(sad._DEPLOY_HEROKU_OPTION,
                                              gitUrl)
    if gitHerokuFlag == 0:
        logManager.printVerbose("Setting git remote heroku...")
        gitUrl = configManager.get(config, sad._DEPLOY_HEROKU_OPTION,
                                   sad._CONFIG_GIT_OPTION_)
        commandManager.runGitSetRemoteUrlCommand(sad._DEPLOY_HEROKU_OPTION,
                                                 gitUrl)
def test_verifyConfig():
    config = configManager.getConfig()
    configManager.verifyConfig(config)
    configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                      sad._CONFIG_HOSTING_OPTION_, "TEST")
    with pytest.raises(SystemExit) as pytest_wrapped_e:
        configManager.verifyConfig(config)
    assert pytest_wrapped_e.type == SystemExit
    configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                      sad._CONFIG_HOSTING_OPTION_, sad._DEPLOY_HEROKU_OPTION)
    configManager.set(config, sad._CONFIG_RAVEGEN_SECTION_,
                      sad._CONFIG_TOKEN_OPTION_, "")
    with pytest.raises(SystemExit) as pytest_wrapped_e:
        configManager.verifyConfig(config)
    assert pytest_wrapped_e.type == SystemExit
    commandManager.runRmCommand(sad._CONFIG_FILE_PATH)
    commandManager.runTouchCommand(sad._CONFIG_FILE_PATH)
    with pytest.raises(SystemExit) as pytest_wrapped_e:
        config = configManager.getConfig()
    assert pytest_wrapped_e.type == SystemExit
Пример #9
0
def _getNewGAEName(config):
    projectName = inputManager.getInput("Enter new GAE project name: ")
    configManager.set(config, sad._DEPLOY_GAE_OPTION,
                      sad._CONFIG_PROJECT_NAME_OPTION_, projectName)
    return projectName
Пример #10
0
def _getNewHerokuName(config):
    projectName = inputManager.getInput("Enter new Heroku Project Name: ")
    configManager.set(config, sad._DEPLOY_HEROKU_OPTION,
                      sad._CONFIG_PROJECT_NAME_OPTION_, projectName)
def test_getBoolean(value, expected):
    config = configManager.getConfig()
    configManager.set(config, "TEST-SEC", "TEST-OP", value)
    assert configManager.getboolean(config, "TEST-SEC", "TEST-OP") == expected
    assert configManager.getboolean(config, "TEST", "TEST-OP") is None
def test_set(section, option, value):
    config = configManager.getConfig()
    configManager.set(config, section, option, value)
    assert configManager.get(config, section, option) == value