コード例 #1
0
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'))
コード例 #2
0
ファイル: __main__.py プロジェクト: QDucasse/IssuuTracker
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()
コード例 #3
0
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))
コード例 #4
0
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)
コード例 #5
0
        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)
コード例 #6
0
        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
    # # ==================