class SSBuilderTest( TestCase ): """ Tests functions for building the serials-solutions file. """ def setUp( self ): self.builder = SSBuilder() def test__build_row( self ): """ Checks built row. """ model_data = { 'issn': '0003-4398', 'year_start': 1999, 'year_end': 2007, 'building': 'Rock', 'callnumber': 'DC607.1 .A6', 'title': "Annales du Midi; revue archéologique, historique, et philologique de la France méridionale; sous les auspices de l'Université de Toulouse", 'url': 'https://search.library.brown.edu/catalog/?q=Annales+du+Midi+revue&f%5Bformat%5D%5B%5D=Periodical+Title' } result = self.builder.build_row( model_data ) # populates attribute row_dct self.assertEqual( { 'issn': '0003-4398', 'title': "Annales du Midi; revue archéologique, historique, et philologique de la France méridionale; sous les auspices de l'Université de Toulouse", 'type': 'Journal', 'url': 'https://search.library.brown.edu/catalog/?q=Annales+du+Midi+revue&f%5Bformat%5D%5B%5D=Periodical+Title', 'location': 'Rock - DC607.1 .A6', 'display_location_note': 'Yes', 'year_start': '1999', 'year_end': '2007', }, self.builder.row_dct ) self.assertEqual( [ "Annales du Midi; revue archéologique, historique, et philologique de la France méridionale; sous les auspices de l'Université de Toulouse", 'Journal', 'https://search.library.brown.edu/catalog/?q=Annales+du+Midi+revue&f%5Bformat%5D%5B%5D=Periodical+Title', 'Rock - DC607.1 .A6', 'Yes', '0003-4398', '1999', '2007' ], self.builder.build_row( model_data ) ) def test__save_file( self ): """ Checks file save output of csv-writer. """ lines_lst = [] lines_lst.append( ['bb', 'Chteni︠i︡a', '2', '3', '4', '5', '6', '7'] ) lines_lst.append( ['aa', 'Sravnitelʹnai︠a︡ politika', '2', '3', '4', '5', '6', '7'] ) path = os.environ['RAPID__TEST_TO_SS_FILEPATH'] self.builder.save_file( lines_lst, path ) with open( path, 'r' ) as f: lines = f.readlines() line = lines[0].decode( 'utf-8' ) # ```"aa","Sravnitelʹnai︠a︡ politika","2","3","4","5","6","7"``` (includes \n character at end) # print 'type(line), ```{}```'.format( type(line) ) # print 'line, ```{}```'.format( line ) self.assertEqual( '"aa"', line[0:4] )
class SSBuilderTest(TestCase): """ Tests functions for building the serials-solutions file. """ def setUp(self): self.builder = SSBuilder() def test__build_row(self): """ Checks built row. """ model_data = { 'issn': '0003-4398', 'year_start': 1999, 'year_end': 2007, 'building': 'Rock', 'callnumber': 'DC607.1 .A6', 'title': "Annales du Midi; revue archéologique, historique, et philologique de la France méridionale; sous les auspices de l'Université de Toulouse", 'url': 'https://search.library.brown.edu/catalog/?q=Annales+du+Midi+revue&f%5Bformat%5D%5B%5D=Periodical+Title' } result = self.builder.build_row( model_data) # populates attribute row_dct self.assertEqual( { 'issn': '0003-4398', 'title': "Annales du Midi; revue archéologique, historique, et philologique de la France méridionale; sous les auspices de l'Université de Toulouse", 'type': 'Journal', 'url': 'https://search.library.brown.edu/catalog/?q=Annales+du+Midi+revue&f%5Bformat%5D%5B%5D=Periodical+Title', 'location': 'Rock - DC607.1 .A6', 'display_location_note': 'Yes', 'year_start': '1999', 'year_end': '2007', }, self.builder.row_dct) self.assertEqual([ "Annales du Midi; revue archéologique, historique, et philologique de la France méridionale; sous les auspices de l'Université de Toulouse", 'Journal', 'https://search.library.brown.edu/catalog/?q=Annales+du+Midi+revue&f%5Bformat%5D%5B%5D=Periodical+Title', 'Rock - DC607.1 .A6', 'Yes', '0003-4398', '1999', '2007' ], self.builder.build_row(model_data)) def test__save_file(self): """ Checks file save output of csv-writer. """ lines_lst = [] lines_lst.append(['bb', 'Chteni︠i︡a', '2', '3', '4', '5', '6', '7']) lines_lst.append( ['aa', 'Sravnitelʹnai︠a︡ politika', '2', '3', '4', '5', '6', '7']) path = os.environ['RAPID__TEST_TO_SS_FILEPATH'] self.builder.save_file(lines_lst, path) with open(path, 'r') as f: lines = f.readlines() line = lines[0].decode( 'utf-8' ) # ```"aa","Sravnitelʹnai︠a︡ politika","2","3","4","5","6","7"``` (includes \n character at end) # print 'type(line), ```{}```'.format( type(line) ) # print 'line, ```{}```'.format( line ) self.assertEqual('"aa"', line[0:4])