Esempio n. 1
0
def main():

    loadEnvFile('local-qa', fileString='config/{}.yaml')

    dbManager = DBManager(
        user= os.environ.get('POSTGRES_USER', None),
        pswd= os.environ.get('POSTGRES_PSWD', None),
        host= os.environ.get('POSTGRES_HOST', None),
        port= os.environ.get('POSTGRES_PORT', None),
        db= os.environ.get('POSTGRES_NAME', None)
    )

    dbManager.generateEngine()

    dbManager.createSession()

    for edit in dbManager.session.query(Edition) \
        .filter(Edition.edition_statement != None) \
        .filter(Edition.languages != None) \
        .filter(Edition.languages != []) \
        .filter(Edition.languages != [{}]).all():
            editNumber = extract(edit.edition_statement, edit.languages[0]['language'])
            edit.edition = editNumber

    dbManager.commitChanges()
Esempio n. 2
0
    def test_loadEnvFile_missing_file(self, sampleEnvFile, mocker):
        mockOpen = mocker.patch('main.open')
        mockOpen.side_effect = FileNotFoundError
        mockYaml = mocker.patch('yaml.full_load')
        mockEnviron = mocker.patch.dict('os.environ', {})

        with pytest.raises(FileNotFoundError):
            loadEnvFile('test', None)
            mockYaml.assert_not_called

        assert mockEnviron.get('TEST_NAME', None) is None
        assert mockEnviron.get('TEST_PORT', None) is None
Esempio n. 3
0
    def test_loadEnvFile_invalid_yaml(self, sampleEnvFile, mocker):
        mockStream = mocker.MagicMock()
        mockOpen = mocker.patch('main.open')
        mockOpen.return_value = mockStream
        mockYaml = mocker.patch('yaml.full_load')
        mockYaml.side_effect = yaml.YAMLError
        mockEnviron = mocker.patch.dict('os.environ', {})

        with pytest.raises(yaml.YAMLError):
            loadEnvFile('test', None)

        assert mockEnviron.get('TEST_NAME', None) is None
        assert mockEnviron.get('TEST_PORT', None) is None
Esempio n. 4
0
    def test_loadEnvFile_default_file(self, sampleEnvFile, mocker):
        mockStream = mocker.MagicMock()
        mockOpen = mocker.patch('main.open')
        mockOpen.return_value = mockStream
        mockYaml = mocker.patch('yaml.full_load')
        mockYaml.return_value = sampleEnvFile
        mockEnviron = mocker.patch.dict('os.environ', {})

        loadEnvFile('test', None)

        mockOpen.assert_called_with('local.yaml')

        assert mockEnviron['TEST_NAME'] == 'test_name'
        assert mockEnviron['TEST_PORT'] == '9999'
def main():
    '''
    Updating current IntechOpen records with new HTML Links to fix Read Online links on DRB site
    '''

    loadEnvFile('local-qa', fileString='config/{}.yaml')

    dbManager = DBManager(
        user= os.environ.get('POSTGRES_USER', None),
        pswd= os.environ.get('POSTGRES_PSWD', None),
        host= os.environ.get('POSTGRES_HOST', None),
        port= os.environ.get('POSTGRES_PORT', None),
        db= os.environ.get('POSTGRES_NAME', None)
    )

    dbManager.generateEngine()

    dbManager.createSession()

    doabProcess = DOABProcess('single', None, None, None, None, None)

    identRegex = r'intechopen.com\/books\/([\d]+)'

    for record in dbManager.session.query(Record) \
        .filter(Record.source == 'doab') \
        .filter(Record.publisher == '{IntechOpen||,IntechOpen||}').all():
            
            for i in record.has_part:
                match = re.search(identRegex, i)
                if match != None:
                    break

            if match == None:
                doabProcess.importSingleOAIRecord(record.source_id)
                doabProcess.saveRecords()
                doabProcess.records = set()     #Clears memory space for process class after each import

    dbManager.commitChanges()