diff --git a/src/GoogleAnalytics/GoogleAnalyticsReader.py b/src/GoogleAnalytics/GoogleAnalyticsReader.py new file mode 100644 index 00000000000..3643ffdb2c3 --- /dev/null +++ b/src/GoogleAnalytics/GoogleAnalyticsReader.py @@ -0,0 +1,14 @@ +import glob +from GoogleAnalytics.ResolutionProvider import ResolutionProvider + + +class GoogleAnalyticsReader: + + def __init__(self, dataDir): + self.dataDir = dataDir + + def getFilesHavingResolution(self, resolution): + return [file for file in self._getFiles() if ResolutionProvider.getResolution(file) == resolution] + + def _getFiles(self): + return glob.glob(self.dataDir + '/*') diff --git a/src/GoogleAnalytics/GoogleAnalyticsReaderTest.py b/src/GoogleAnalytics/GoogleAnalyticsReaderTest.py new file mode 100644 index 00000000000..e5e1c5f37ab --- /dev/null +++ b/src/GoogleAnalytics/GoogleAnalyticsReaderTest.py @@ -0,0 +1,30 @@ +import unittest +from GoogleAnalytics.ResolutionProvider import Resolution +from GoogleAnalytics.GoogleAnalyticsReader import GoogleAnalyticsReader + +class GoogleAnalyticsReaderTest(unittest.TestCase): + + def test_getFilesHavingCityResolution(self): + # Given + googleAnalyticsReader = GoogleAnalyticsReader(dataDir = 'src/testdata/GoogleAnalytics') + + # When + files = googleAnalyticsReader.getFilesHavingResolution(Resolution.CITY) + + # Then + self.assertEqual(files, ['src/testdata/GoogleAnalytics/CountryByBatchcode 20230730-20230929.csv']) + + def test_getFilesHavingCountryResolution(self): + # Given + googleAnalyticsReader = GoogleAnalyticsReader(dataDir = 'src/testdata/GoogleAnalytics') + + # When + files = googleAnalyticsReader.getFilesHavingResolution(Resolution.COUNTRY) + + # Then + self.assertEqual( + files, + [ + 'src/testdata/GoogleAnalytics/CountryByBatchcode 20230501-20230531.csv', + 'src/testdata/GoogleAnalytics/CountryByBatchcode 20230302-20230430.csv' + ]) diff --git a/src/testdata/GoogleAnalytics/CountryByBatchcode 20230501-20230531.csv b/src/testdata/GoogleAnalytics/CountryByBatchcode 20230501-20230531.csv index 537e937d3e2..51bab5272b7 100644 --- a/src/testdata/GoogleAnalytics/CountryByBatchcode 20230501-20230531.csv +++ b/src/testdata/GoogleAnalytics/CountryByBatchcode 20230501-20230531.csv @@ -3,3 +3,5 @@ # Batchcode By Country-Country By Clicked Batchcode # 20230501-20230531 # ---------------------------------------- + +Clicked Batchcode,Country,Event count