def full_named_path(f): # Фільтр для повного шляху файла чи теки у структурі каталогу # Імена беруться з folder.name i report.filename try: n = get_full_named_path(f) except: n = "" return n
def get_queryset(self): # Дочірні об'єкти: # два queryset з різних моделей об'єднується в один qs, # який обробляється в template як одне ціле fs = Folder.objects.all() rs = Report.objects.all() qs = list(chain(fs, rs)) qs = sorted(qs, key=lambda x: get_full_named_path(x)) return qs
def test_visitor_can_find_folder(self): # Користувач може перейти по лінку потрібні дані self.browser.get('%s%s' % (self.server_url, self.this_url)) for f in Folder.objects.filter(parent=None): link_parent_selector = '#body-table' link_text = get_full_named_path(f) url_name = 'folders:folder-detail' kwargs = {'pk': f.id} expected_regex = "/noaccess/" self.check_go_to_link(self.this_url, link_parent_selector, link_text, url_name=url_name, kwargs=kwargs, expected_regex=expected_regex) print('finished: %s' % inspect.stack()[0][3], end=' >> ')
def test_visitor_can_find_folder(self): # Користувач може перейти по лінку потрібні дані self.browser.get('%s%s' % (self.server_url, self.this_url)) for f in Folder.objects.all(): link_parent_selector = '#body-table' link_text = get_full_named_path(f) url_name = 'folders:folder-detail' kwargs = {'pk': f.id} expected_regex = "/noaccess/" self.check_go_to_link(self.this_url, link_parent_selector, link_text, url_name=url_name, kwargs=kwargs, expected_regex=expected_regex) print('finished: %s' % inspect.stack()[0][3], end=' >> ')
def test_visitor_can_find_report(self): # Користувач може перейти по лінку потрібні дані self.browser.set_window_size(1024, 800) self.browser.get('%s%s' % (self.server_url, self.this_url)) for f in Report.objects.all(): link_parent_selector = '#body-table' link_text = get_full_named_path(f) url_name = 'folders:report-detail' kwargs = {'pk': f.id} expected_regex = "" self.check_go_to_link(self.this_url, link_parent_selector, link_text, url_name=url_name, kwargs=kwargs, expected_regex=expected_regex) print('finished: %s' % inspect.stack()[0][3], end=' >> ')
def test_get_full_named_path(self): root = DummyFolder().create_dummy_root_folder() f2 = DummyFolder().create_dummy_folder(parent=root) f3 = DummyFolder().create_dummy_folder(parent=f2) r0 = DummyFolder().create_dummy_report(parent=root) r1 = DummyFolder().create_dummy_report(parent=root, filename="r1") r2 = DummyFolder().create_dummy_report(parent=f2, filename="r2") r3 = DummyFolder().create_dummy_report(parent=f3, filename="r3") self.assertEqual(get_full_named_path(root), "dummy_root_folder") self.assertEqual(get_full_named_path(f2), "dummy_root_folder/dummy_folder") self.assertEqual(get_full_named_path(f3), "dummy_root_folder/dummy_folder/dummy_folder") self.assertEqual(get_full_named_path(r0), "dummy_root_folder/--no-name--") self.assertEqual(get_full_named_path(r1), "dummy_root_folder/r1") self.assertEqual(get_full_named_path(r2), "dummy_root_folder/dummy_folder/r2") self.assertEqual(get_full_named_path(r3), "dummy_root_folder/dummy_folder/dummy_folder/r3")
def test_visitor_can_find_report(self): # Користувач може перейти по лінку потрібні дані self.browser.get("%s%s" % (self.server_url, self.this_url)) for f in Report.objects.all(): link_parent_selector = "#body-table" link_text = get_full_named_path(f) url_name = "folders:report-detail" kwargs = {"pk": f.id} expected_regex = "/noaccess/" self.check_go_to_link( self.this_url, link_parent_selector, link_text, url_name=url_name, kwargs=kwargs, expected_regex=expected_regex, ) print("finished: %s" % inspect.stack()[0][3], end=" >> ")
def test_full_named_path(self): r0 = DummyFolder().create_dummy_report(self.root) self.assertEqual(full_named_path(self.root), get_full_named_path(self.root)) self.assertEqual(full_named_path(r0), get_full_named_path(r0))