Пример #1
0
 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/'))
Пример #2
0
    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
Пример #3
0
    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()
Пример #4
0
 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])
Пример #5
0
        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))
Пример #6
0
        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])
Пример #7
0
 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)
Пример #8
0
    """
    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)
Пример #9
0
 def test1():
     self.assertEqual([], Covid19Args._getLocationArgs(''))
Пример #10
0
 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  //'))