def test3(): self.assertEqual([], Covid19Args._getLocationArgs('abc, def')) self.assertEqual(['abc/xyz/'], Covid19Args._getLocationArgs('abc/xyz/, def')) self.assertEqual( ['abc/xyz/mno', 'def/ghi/jkl'], Covid19Args._getLocationArgs('abc/xyz/mno, def/ghi/jkl')) self.assertEqual( ['abc/xyz/mno', 'def jkl/ghi/jkl'], Covid19Args._getLocationArgs('abc/xyz/mno, "def jkl"/ghi/jkl')) self.assertEqual( ['abc/xyz/mno', 'def jkl/ghi stu/xyz', 'mno /pqr/'], Covid19Args._getLocationArgs( 'abc/xyz/mno, "def jkl"/ghi stu/xyz, xyz, mno /pqr/'))
def setupInputsFromArgs(args_): """ Takes in Covid19Args and returns a list of tuples. Tuple contains - 1. Input Type 2. File name with path. Note if args_ has 'download' set to True, no explicitly specified input files will be considered. :param args_: Covid19Args :return: List of tuples containing input type and file name. """ assert isinstance(args_, Covid19Args) inputList = [] if args_.download: # TODO downloadFilenamesWithPath is a static call. downloadFilenamesWithPath = Covid19Args.downloadFilenamesWithPath() for fileType in downloadFilenamesWithPath.keys(): assert isinstance(fileType, InputFileFactory) inputfile = Covid19InputDownloader.downloadFile( fileType.downloadURL(), downloadFilenamesWithPath[fileType]) # Create tuple as InputFileType, filename. inputList.append((fileType, inputfile)) else: # US Input file. if args_.inputfile is not None: inputList.append( (InputFileFactory.CONFIRMED_US, args_.inputfile)), if args_.globalInputfile is not None: inputList.append( (InputFileFactory.CONFIRMED_GLOBAL, args_.globalInputfile)) return inputList
def test_parse(self): testList = [ '--input', 'aaa', '--location', 'bbb/ccc/ddd, eee/fff/ggg', '--templateOutput', 'hhh', '--download', '--output', 'jjj' ] args = Covid19Args() def test_inputFile(): self.assertIsNotNone(args.inputfile) self.assertEqual('aaa', args.inputfile) def test_globalInputfile(): self.assertIsNotNone(args.inputfile) self.assertEqual('kkk', args.globalInputfile) def test_download(): self.assertIsNotNone(args.download) # print(args.download) self.assertTrue(args.download) def test_locationList(): self.assertIsNotNone(args.locationList) self.assertEqual(['bbb/ccc/ddd', 'eee/fff/ggg'], args.locationList) def test_templateOutputFile(): self.assertIsNotNone(args.templateOutput) self.assertEqual('hhh', args.templateOutput) def test_outputFile(): self.assertIsNotNone(args.outputfile) self.assertEqual('jjj', args.outputfile) args.setup() self.assertIsNotNone(args._parser) self.assertIsNone(args._inputfile) self.assertIsNone(args.globalInputfile) self.assertFalse(args.download) self.assertIsNone(args._locationList) self.assertIsNone(args._templateOutputFile) self.assertIsNone(args._outputfile) args.parse(testList) test_inputFile() test_locationList() test_templateOutputFile() test_outputFile() test_download() testList.append('--globalInput') testList.append('kkk') args.parse(testList) test_inputFile() test_locationList() test_templateOutputFile() test_outputFile() test_download() test_globalInputfile()
def test_downloadFilename(self): timeSuffix = 2014 today = datetime.today().strftime('%Y%m%d') downloadFilenamesWithPath = Covid19Args.downloadFilenamesWithPath( timeSuffix) self.assertEqual(len(InputFileFactory), len(downloadFilenamesWithPath.keys())) for fileType in InputFileFactory: checkFilename = '{0}/{1}_{2}{3}.csv'.format( Covid19Constants.DOWNLOAD_FOLDER, fileType.downloadFilePrefix(), today, timeSuffix) self.assertEqual(checkFilename, downloadFilenamesWithPath[fileType])
def testForDownload(): args = Covid19Args() args.setup() argList = [ '--input', 'aaa', '--download', '--location', 'bbb/ccc/ddd, eee/fff/ggg', '--templateOutput', 'hhh', '--output', 'jjj' ] args.parse(argList) self.assertTrue(args.download) tupList = Covid19ControllerUtils.setupInputsFromArgs(args) filesFromArgs = Covid19Args.downloadFilenamesWithPath() self.assertEqual(len(filesFromArgs.keys()), len(tupList)) for tup in tupList: fileType = tup[0] self.assertIn(fileType, filesFromArgs.keys()) self.assertEqual(filesFromArgs[fileType], tup[1]) fileTypeSet = set(filesFromArgs.keys()) typeListFromTupeList = [] for item in tupList: typeListFromTupeList.append(item[0]) self.assertEqual(fileTypeSet, set(typeListFromTupeList))
def testForGlobalInput(): args = Covid19Args() args.setup() argList = [ '--global', 'aaa', '--location', 'bbb/ccc/ddd, eee/fff/ggg', '--templateOutput', 'hhh', '--output', 'jjj' ] args.parse(argList) self.assertFalse(args.download) tupList = Covid19ControllerUtils.setupInputsFromArgs(args) self.assertEqual(1, len(tupList)) fileType = tupList[0][0] self.assertEqual(fileType, InputFileFactory.CONFIRMED_GLOBAL) self.assertEqual('aaa', tupList[0][1])
def test_setup(self): args = Covid19Args() self.assertIsNone(args._parser) self.assertIsNone(args._inputfile) self.assertIsNone(args._locationList) self.assertFalse(args.download) self.assertIsNone(args._templateOutputFile) self.assertIsNone(args._outputfile) args.setup() self.assertIsNotNone(args._parser) self.assertIsNone(args._inputfile) self.assertFalse(args.download) self.assertIsNone(args._locationList) self.assertIsNone(args._templateOutputFile) self.assertIsNone(args._outputfile)
""" Usage: python3 controller/Covid19.py --input "/Users/developer/Downloads/covid19/time_series_covid19_confirmed_US_202004141835.csv" --global "/Users/developer/Downloads/covid19/time_series_covid19_confirmed_global_202004141835.csv" --location "USA/New York/New York, USA/New York/Nassau, USA/New York/Westchester, USA/New York/Rockland, USA/New Jersey/Bergen, USA/New Jersey/Hudson, USA/New Jersey/Middlesex, USA/New Jersey/Mercer, USA/Connecticut/Fairfield, USA/Washington/King, USA/California/Santa Clara, USA/Illinois/Cook, United Kingdom//, India//" --templateOutput "/Users/developer/Downloads/covid19Template7.xlsm" --output "/Users/developer/Downloads/covid19/covid19.xlsm" python3 controller/Covid19.py --download --location "USA/New York/New York, USA/New York/Nassau, USA/New York/Westchester, USA/New York/Rockland, USA/New Jersey/Bergen, USA/New Jersey/Hudson, USA/New Jersey/Middlesex, USA/New Jersey/Mercer, USA/Connecticut/Fairfield, USA/Washington/King, USA/California/Santa Clara, USA/Illinois/Cook, United Kingdom//, India//" --templateOutput "/Users/developer/Downloads/covid19Template7.xlsm" --output "/Users/developer/Downloads/covid19/covid19.xlsm" """ args = Covid19Args() args.setup() args.parse() inputList = Covid19ControllerUtils.setupInputsFromArgs(args) obsColl = Covid19ControllerUtils.createObsCollection(inputList) writer = ExcelWriter(args.templateOutput, openExisting=True, hasMacros=True) writer._rowNum = 2 print('xx', str(args.locationList)) for locStr in args.locationList: # print('xx', locStr)
def test1(): self.assertEqual([], Covid19Args._getLocationArgs(''))
def test2(): self.assertEqual([], Covid19Args._getLocationArgs('abc')) self.assertEqual([], Covid19Args._getLocationArgs('abc.def')) self.assertEqual([], Covid19Args._getLocationArgs(' abc ')) self.assertEqual([], Covid19Args._getLocationArgs('/abc')) self.assertEqual([], Covid19Args._getLocationArgs(' /abc')) self.assertEqual([], Covid19Args._getLocationArgs(' / abc')) self.assertEqual([], Covid19Args._getLocationArgs('abc/')) self.assertEqual([], Covid19Args._getLocationArgs('abc /')) self.assertEqual([], Covid19Args._getLocationArgs('abc / ')) self.assertEqual([], Covid19Args._getLocationArgs('abc /')) self.assertEqual([], Covid19Args._getLocationArgs('//')) self.assertEqual([], Covid19Args._getLocationArgs('///')) self.assertEqual(['a//'], Covid19Args._getLocationArgs('a//')) self.assertEqual(['a///'], Covid19Args._getLocationArgs('a///')) self.assertEqual([], Covid19Args._getLocationArgs('abc/def')) self.assertEqual([], Covid19Args._getLocationArgs('abc / def')) self.assertEqual([], Covid19Args._getLocationArgs('abc /def')) self.assertEqual([], Covid19Args._getLocationArgs('abc xyz/def')) self.assertEqual(['abc/def/'], Covid19Args._getLocationArgs('abc/def/')) self.assertEqual(['abc / def/'], Covid19Args._getLocationArgs('abc / def/')) self.assertEqual(['abc / def /'], Covid19Args._getLocationArgs('abc / def /')) self.assertEqual(['abc /def/ghi'], Covid19Args._getLocationArgs('abc /def/ghi')) self.assertEqual(['abc /def/'], Covid19Args._getLocationArgs('abc /def/')) self.assertEqual( ['abc xyz/def / mno '], Covid19Args._getLocationArgs('abc xyz/def / mno ')) self.assertEqual(['India//'], Covid19Args._getLocationArgs('India//')) self.assertEqual(['India/ / '], Covid19Args._getLocationArgs('India/ / ')) self.assertEqual(['India //'], Covid19Args._getLocationArgs('India //'))