class GraphHandlerTestCase(unittest.TestCase): def setUp(self): self.dl = DataLoader() self.dl.load_dataset_from('./data/tests/issuu_test_graph_handler.json') self.gh = GraphHandler(self.dl.dicts) def test_file_created(self): self.gh.create_graph(base_visitor_uuid="0000", base_document_uuid="aaaa", render=False) import os.path self.assertTrue(os.path.exists('graphs/alaaaa.dot')) self.assertTrue(os.path.exists('graphs/alaaaa.dot.pdf'))
def main(): # COMPONENTS CREATION # =================== dl = DataLoader() # ARGUMENTS PARSING # ================= parser = argparse.ArgumentParser(description='ISSUU Tracker') parser.add_argument("-u","--user_uuid", help = "UUID of the user") parser.add_argument("-d","--doc_uuid", help = "UUID of the document") parser.add_argument("-t","--task_id", help = "ID of the task (2a,2b,3a,3b,4d,5,6)") parser.add_argument("-f","--file_name", help = "JSON file of the dataset") args = parser.parse_args() if args.task_id == "2a": dl.complete_load(args.file_name) dv = DataVisualiser(dl.dicts) dv.plot_countries() elif args.task_id == "2b": dl.complete_load(args.file_name) dv = DataVisualiser(dl.dicts) dv.plot_continents() elif args.task_id == "3a": dl.complete_load(args.file_name) dv = DataVisualiser(dl.dicts) dv.plot_browsers_verbose() elif args.task_id == "3b": dl.complete_load(args.file_name) dv = DataVisualiser(dl.dicts) dv.plot_browsers() elif args.task_id == "4d": dl.load_dataset_from(args.file_name) af = AffinityFinder(dl.dicts) print(af.also_likes(args.doc_uuid)) elif args.task_id == "5": dl.load_dataset_from(args.file_name) gh = GraphHandler(dicts=dl.dicts) graph = gh.create_graph(base_document_uuid=args.doc_uuid,base_visitor_uuid=args.user_uuid) elif args.task_id == "6": gui = GUI() gui.mainloop()
class AffinityFinderTestCase(unittest.TestCase): def setUp(self): self.dl = DataLoader() self.dl.load_dataset_from('./data/tests/issuu_test_affinity_finder.json') self.af = AffinityFinder(self.dl.dicts) def list_equal(self,l1,l2): print(l1) print(l2) return len(l1)==len(l2) and sorted(l1)==sorted(l2) def test_readers_of(self): list_result = ["0000","1111"] readers_of = self.af.readers_of("aaaa") self.assertTrue(self.list_equal(list_result,readers_of)) def test_has_read(self): list_result = ["aaaa","bbbb"] has_read = self.af.has_read("1111") self.assertTrue(self.list_equal(list_result,has_read)) def test_also_likes_no_user(self): list_result = ["aaaa","bbbb"] also_likes = self.af.also_likes("aaaa") self.assertTrue(self.list_equal(list_result,also_likes)) def test_also_likes_user0(self): list_result = ["aaaa","bbbb"] also_likes = self.af.also_likes("aaaa","0000") self.assertTrue(self.list_equal(list_result,also_likes)) def test_also_likes_user1(self): list_result = ["bbbb"] also_likes = self.af.also_likes("bbbb","1111") self.assertTrue(self.list_equal(list_result,also_likes))
class DataLoaderTestCase(unittest.TestCase): def setUp(self): self.dl = DataLoader() self.dl.load_dataset_from('./data/tests/issuu_test_data_loader.json') def test_load_dataset(self): dict_result1 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36", "visitor_country": "MX" } dict_result2 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/540.36 (KHTML, like Gecko) Chrome/34.0.1750.112 Safari/538.36", "visitor_country": "MX" } dict_result3 = { "visitor_useragent": "P3P Validator", "visitor_country": "FR" } self.assertEqual(self.dl.dicts[0], dict_result1) self.assertEqual(self.dl.dicts[1], dict_result2) self.assertEqual(self.dl.dicts[2], dict_result3) def test_trimmed_browser_regex_match(self): test_dict = self.dl.dicts[0] self.dl.add_trimmed_browser(test_dict) self.assertEqual(test_dict['visitor_useragent_trimmed'], 'Mozilla Safari') def test_trimmed_browser_no_regex_match(self): test_dict = self.dl.dicts[2] self.dl.add_trimmed_browser(test_dict) self.assertEqual(test_dict['visitor_useragent_trimmed'], 'P3P Validator') def test_map_trim_browser(self): self.dl.map_trim() dict_result1 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36", "visitor_country": "MX", "visitor_useragent_trimmed": "Mozilla Safari" } dict_result2 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/540.36 (KHTML, like Gecko) Chrome/34.0.1750.112 Safari/538.36", "visitor_country": "MX", "visitor_useragent_trimmed": "Mozilla Safari" } dict_result3 = { "visitor_useragent": "P3P Validator", "visitor_country": "FR", "visitor_useragent_trimmed": "P3P Validator" } self.assertEqual(self.dl.dicts[0], dict_result1) self.assertEqual(self.dl.dicts[1], dict_result2) self.assertEqual(self.dl.dicts[2], dict_result3) def test_continent(self): test_dict1 = self.dl.dicts[0] test_dict2 = self.dl.dicts[2] self.dl.add_continent(test_dict1) self.dl.add_continent(test_dict2) self.assertEqual(test_dict1['visitor_continent'], 'North America') self.assertEqual(test_dict2['visitor_continent'], 'Europe') def test_map_add_continent(self): self.dl.map_continents() dict_result1 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36", "visitor_country": "MX", "visitor_continent": "North America" } dict_result2 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/540.36 (KHTML, like Gecko) Chrome/34.0.1750.112 Safari/538.36", "visitor_country": "MX", "visitor_continent": "North America" } dict_result3 = { "visitor_useragent": "P3P Validator", "visitor_country": "FR", "visitor_continent": "Europe" } self.assertEqual(self.dl.dicts[0], dict_result1) self.assertEqual(self.dl.dicts[1], dict_result2) self.assertEqual(self.dl.dicts[2], dict_result3) def test_complete_load(self): dl = DataLoader() dl.complete_load('./data/tests/issuu_test_data_loader.json') dict_result1 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36", "visitor_country": "MX", "visitor_useragent_trimmed": "Mozilla Safari", "visitor_continent": "North America" } dict_result2 = { "visitor_useragent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/540.36 (KHTML, like Gecko) Chrome/34.0.1750.112 Safari/538.36", "visitor_country": "MX", "visitor_useragent_trimmed": "Mozilla Safari", "visitor_continent": "North America" } dict_result3 = { "visitor_useragent": "P3P Validator", "visitor_country": "FR", "visitor_useragent_trimmed": "P3P Validator", "visitor_continent": "Europe" } self.assertEqual(dl.dicts[0], dict_result1) self.assertEqual(dl.dicts[1], dict_result2) self.assertEqual(dl.dicts[2], dict_result3)
sort_list = sorted(docs_list, key=counts.get, reverse=True) # Removing duplicates sort_list = list(set(sort_list)) if doc_uuid in sort_list: sort_list.remove(doc_uuid) return [doc_uuid] + sort_list[:9] def id(self, docs_list, doc_uuid): return docs_list if __name__ == "__main__": # IMPORTS TO TEST from IssuuTracker.data_loader import DataLoader, path_base_dataset, path_100k_dataset dl_full = DataLoader() dl_full.load_dataset_from(path_base_dataset) af = AffinityFinder(dl_full.dicts) # Test 1 # print(af.readers_of_list('130228184234-6fd07690237d48aaa7be4e20cb767b13')) # print(af.has_read_list('bd378ce6df7cb9cd')) # print(af.also_likes_list('120928161916-bbf9b86bb865460a8e674d5338115a18')) # Test 2 print(af.has_read('2f63e0cca690da91')) print(af.also_likes('140219141540-c900b41f845c67cc08b58911155c681c')) # dl_100k = DataLoader() # dl_100k.load_dataset_from(path_100k_dataset) # af100k = AffinityFinder(dl_100k.dicts)
if not(document_uuid in graph.node_attr): graph.node(document_uuid[-4:]) graph.edge(visitor_uuid[-4:],document_uuid[-4:]) else: graph.edge(visitor_uuid[-4:],document_uuid[-4:]) graph.attr('node',style='solid',color='black') if __name__ == "__main__": # IMPORT TESTS from IssuuTracker.data_loader import DataLoader,path_base_dataset,path_100k_dataset,path_400k_dataset,path_600k_dataset,path_3m_dataset # BASE DATASET TESTS # ================== dl_base = DataLoader() dl_base.load_dataset_from(path_base_dataset) gh = GraphHandler(dl_base.dicts) # gh.create_graph(dl_base.df,'bd378ce6df7cb9cd','130228184234-6fd07690237d48aaa7be4e20cb767b13') # gh.create_graph(dl_base.dicts,'2f63e0cca690da91','140219141540-c900b41f845c67cc08b58911155c681c') # # 100K DATASET TESTS # # ================== dl_100k = DataLoader() dl_100k.load_dataset_from(path_100k_dataset) gh = GraphHandler(dicts=dl_100k.dicts) # gh.create_graph(base_visitor_uuid='00000000deadbeef',base_document_uuid='100806162735-00000000115598650cb8b514246272b5') gh.create_graph(base_visitor_uuid='00000000deadbeef',base_document_uuid='aaaaaaaaaaaa-00000000df1ad06a86c40000000feadbe') # # 400K DATASET TESTS # # ==================