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()
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
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
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()