def setUp(self):
     self.dummy_user = self.create_dummy_user()
     self.add_user_cookie_to_browser(self.dummy_user)
     self.add_dummy_permission(self.dummy_user, codename='change_report', model='report')
     self.get_data_links_number()
     parent = DummyFolder().create_dummy_folder(id=1)
     DummyFolder().create_dummy_report(parent=parent, id=1)
 def setUp(self):
     self.dummy_user = self.create_dummy_user()
     self.add_user_cookie_to_browser(self.dummy_user)
     self.add_dummy_permission(self.dummy_user, codename='change_report', model='report')
     parent = DummyFolder().create_dummy_folder(id=1)
     file = SimpleUploadedFile("file.txt", b"file_content")
     DummyFolder().create_dummy_report(parent=parent, id=1, file=file)
    def test_visitor_can_download_report(self):
        parent = DummyFolder().create_dummy_folder(id=1)
        file = SimpleUploadedFile("file.txt", b"file_content")
        report = DummyFolder().create_dummy_report(parent=parent,
                                                   id=1,
                                                   file=file)
        download_directory = "D:\Downloads"
        download_file_full_path = os.path.join(download_directory,
                                               report.filename)

        # Користувач перебуває на якійсь сторінці
        current_url = self.browser.current_url

        # Користувач відкриває сторінку
        self.browser.get('%s%s' % (self.server_url, self.this_url))

        # Завантаження має початися автоматично

        os.remove(report.file.path)

        if os.path.exists(download_file_full_path):
            print('file was successfully downloaded')
            self.assertTrue(os.path.exists(download_file_full_path))
            os.remove(download_file_full_path)
        else:
            print("file wasn't downloaded")

        # Сторінка має залишитись та сама
        self.check_passed_link(expected_regex=current_url)

        print('finished: %s' % inspect.stack()[0][3], end=' >> ')
 def test_get_recursive_path(self):
     root = DummyFolder().create_dummy_root_folder()
     f2 = DummyFolder().create_dummy_folder(parent=root)
     f3 = DummyFolder().create_dummy_folder(parent=f2)
     report = DummyFolder().create_dummy_report(parent=f3)
     patt = os.path.join('%s', '%s', '%s', '')
     expected = patt % (root.id, f2.id, f3.id)
     self.assertEqual(get_recursive_path(report), expected)
 def test_get_subfolders(self):
     root = DummyFolder().create_dummy_root_folder()
     f2 = DummyFolder().create_dummy_folder(parent=root)
     f3 = DummyFolder().create_dummy_folder(parent=f2)
     f4 = DummyFolder().create_dummy_folder(parent=f2, name='f4')
     self.assertEqual(list(get_subfolders(root)), [f2])
     self.assertEqual(list(get_subfolders(f2)), [f3, f4])
     self.assertEqual(list(get_subfolders(f3)), [])
Beispiel #6
0
 def setUp(self):
     self.dummy_user = self.create_dummy_user()
     self.add_user_cookie_to_browser(self.dummy_user)
     self.add_dummy_permission(self.dummy_user, codename='view_report', model='report')
     self.get_data_links_number()
     parent = DummyFolder().create_dummy_folder()
     # Для прикладу беремо цей файл:
     full_path = os.path.join(os.getcwd(), 'example.jpg') # повний шлях
     self.report = DummyFolder().create_dummy_report(parent=parent,
                                                id=1, path=full_path)
    def test_error_message_if_parent_name_not_unique_together(self):
        parent = Folder.objects.get(id=1)
        DummyFolder().create_dummy_folder(parent=parent, name="double_name")

        # Користувач відкриває сторінку
        self.browser.get('%s%s' % (self.server_url, self.this_url))

        # Вибирає значення
        inputbox = self.browser.find_element_by_id('id_parent')

        all_options = inputbox.find_elements_by_tag_name("option")
        for option in all_options:
            if option.get_attribute('value') == "1":
                option.click()

        # Вводить у полі дані
        inputbox = self.browser.find_element_by_id('id_name')
        inputbox.send_keys('double_name')

        # Натискає ENTER
        inputbox.send_keys(Keys.ENTER)

        error = self.get_error_element(".errorlist")
        self.assertEqual(error.text,
                         "Тека з таким Материнська тека та Тека вже існує.")

        print('finished: %s' % inspect.stack()[0][3], end=' >> ')
 def setUp(self):
     self.dummy_user = self.create_dummy_user()
     self.add_user_cookie_to_browser(self.dummy_user)
     self.add_dummy_permission(self.dummy_user,
                               codename='add_folder',
                               model='folder')
     DummyFolder().create_dummy_catalogue()
Beispiel #9
0
 def test_form_validation_for_duplicate_fields_with_empty_parent(self):
     f1 = DummyFolder().create_dummy_folder(name='dummy-1')
     # Передаємо у форму такі ж значення parent і name:
     data = {'name': "dummy-1"}
     form = self.cls_form(data=data)
     self.assertFalse(form.is_valid())
     self.assertEqual(form.errors['__all__'], ['Тека з таким Материнська тека та Тека вже існує.'])
    def test_get_folders_tree_HTML(self):
        expected = '''<ul>
<li id="1">dum_f_0
<ul>
<li id="2">dum_f_0_0_0
<ul>
<li id="3">dum_f_0_0_0_1_0
</li>
<li id="4">dum_f_0_0_0_1_1
</li>
</ul>
</li>
<li id="5">dum_f_0_0_1
<ul>
<li id="6">dum_f_0_0_1_1_0
</li>
<li id="7">dum_f_0_0_1_1_1
</li>
</ul>
</li>
</ul>
</li>
</ul>
'''
        DummyFolder().create_dummy_catalogue()
        html = get_folders_tree_HTML(tab='')
        self.assertEqual(html, expected)
 def test_wrap_ul(self):
     self.root = DummyFolder().create_dummy_root_folder()
     qs = Folder.objects.all()
     ul = wrap_ul(qs, tab='')
     soup = BeautifulSoup(ul, 'html.parser')
     self.assertEqual(soup.li['id'], "1")
     self.assertEqual(soup.li.string.strip(), "dummy_root_folder")
Beispiel #12
0
 def setUp(self):
     # self.browser.implicitly_wait(20)
     self.dummy_user = self.create_dummy_user()
     DummyFolder().create_dummy_catalogue()
     DummyFlat().create_dummy_building()
     self.add_user_cookie_to_browser(self.dummy_user)
     self.data_links_number = 0  # кількість лінків, які приходять в шаблон з даними
Beispiel #13
0
 def setUp(self):
     self.dummy_user = self.create_dummy_user()
     self.add_user_cookie_to_browser(self.dummy_user)
     DummyFolder().create_dummy_catalogue()
     DummyFlat().create_dummy_building()
     profile = self.create_dummy_profile(user=self.dummy_user)
     flat = DummyFlat().create_dummy_flat()
     profile.flat = flat
     profile.save()
Beispiel #14
0
    def setUp(self):

        # Параметри, при яких декоратор пропускає до функції:
        user = DummyUser().create_dummy_user(username='******')
        user.has_perms = Mock()
        user.has_perms.return_value = True

        user2 = DummyUser().create_dummy_user(username='******')
        user2.has_perms = Mock()
        user2.has_perms.return_value = True

        root = DummyFolder().create_dummy_root_folder()
        object = DummyFolder().create_dummy_report(root,
                                                   id=1,
                                                   filename='report1',
                                                   user=user)

        object2 = DummyFolder().create_dummy_report(root,
                                                    id=2,
                                                    filename='report2')

        model = Report

        request = RequestFactory()
        request.build_absolute_uri = Mock()
        request.build_absolute_uri.return_value = ""  # path
        request.get_full_path = Mock()
        request.get_full_path.return_value = ""  # path
        request.user = user

        view_func = Mock()
        view_func.return_value = 'passed'

        test_func = Mock()
        test_func.return_value = True

        self.user = user
        self.user2 = user2
        self.object = object
        self.model = model
        self.request = request
        self.view_func = view_func
        self.test_func = test_func
        self.perm = 'can'
    def test_visitor_can_update_report_file(self):
        parent = DummyFolder().create_dummy_folder(id=1)
        report = Report.objects.get(id=1)
        old_full_path = report.file.path

        # Користувач відкриває сторінку
        self.browser.get('%s%s' % (self.server_url, self.this_url))

        # Бачить у полі очікувану інформацію
        inputbox = self.browser.find_element_by_id('id_filename')
        self.assertEqual(inputbox.get_attribute('value'), report.filename)

        # Вводить нове значення
        # Для прикладу беремо цей файл:
        cwd = os.getcwd()   # поточний каталог (в ньому є manage.py)
        full_path = os.path.join(cwd, 'example.txt') # повний шлях

        # Натискає кнопку Browse - емулюється шляхом посилання в цей елемент шляху до файла.
        inputbox = self.browser.find_element_by_css_selector('input[type=file]')
        inputbox.send_keys(full_path)

        # Натискає кнопку submit
        button = self.browser.find_element_by_css_selector('input[type=submit]')
        button.click()

        # Все збережено вірно?
        report = Report.objects.get(id=1)
        expected_parent       = parent
        expected_filename     = 'example.txt'
        with open(full_path, 'rb') as f:
            expected_file_content = f.read()

        self.assertEqual(report.parent,      expected_parent)
        self.assertEqual(report.filename,    expected_filename)
        self.assertEqual(report.file.read(), expected_file_content)

        # Час створення (до хвилини) співпадає з поточним?
        self.assertAlmostEqual(report.uploaded_on, now(), delta=timedelta(minutes=1))

        report.file.close()

        # Втидаляємо старий файл, оскільки файлова система
        # записує новий файл під новим іменем:
        os.remove(old_full_path)

        # Має бути перехід на потрібну сторінку
        self.check_passed_link(expected_regex=report.get_absolute_url())

        print('finished: %s' % inspect.stack()[0][3], end=' >> ')
 def test_get_subreports(self):
     root = DummyFolder().create_dummy_root_folder()
     f2 = DummyFolder().create_dummy_folder(parent=root)
     f3 = DummyFolder().create_dummy_folder(parent=f2)
     r2 = DummyFolder().create_dummy_report(parent=f2)
     r3 = DummyFolder().create_dummy_report(parent=f3)
     r4 = DummyFolder().create_dummy_report(parent=f3)
     self.assertEqual(list(get_subreports(root)), [])
     self.assertEqual(list(get_subreports(f2)), [r2])
     self.assertEqual(list(get_subreports(f3)), [r3, r4])
Beispiel #17
0
    def visit_page(self, file_name, expected_text=""):
        fileExt = os.path.splitext(file_name)[1]
        # Чи розширення цього файла входить до списку "previewable"?
        if expected_text:
            self.assertNotIn(fileExt, get_viewable_extension_list())
        else:
            self.assertIn(fileExt, get_viewable_extension_list())

        # Створюємо запис з цим файлом:
        full_path = os.path.join(os.getcwd(), file_name) # повний шлях
        self.report = DummyFolder().create_dummy_report(parent=self.parent,
                                                   id=1, path=full_path)
        # Користувач відкриває сторінку
        self.browser.get('%s%s' % (self.server_url, self.this_url))

        # Бачить у полі очікувану інформацію
        div_box = self.browser.find_element_by_id('preview-box')
        self.assertEqual(div_box.text, expected_text)
 def test_get_parents(self):
     root = DummyFolder().create_dummy_root_folder()
     f2 = DummyFolder().create_dummy_folder(parent=root)
     f3 = DummyFolder().create_dummy_folder(parent=f2)
     r1 = DummyFolder().create_dummy_report(parent=root)
     r2 = DummyFolder().create_dummy_report(parent=f2)
     r3 = DummyFolder().create_dummy_report(parent=f3)
     self.assertEqual(get_parents(root), [])
     self.assertEqual(get_parents(f2), [root])
     self.assertEqual(get_parents(f3), [root, f2])
     self.assertEqual(get_parents(r1), [root])
     self.assertEqual(get_parents(r2), [root, f2])
     self.assertEqual(get_parents(r3), [root, f2, f3])
    def test_visitor_can_update_report_filename(self):
        parent = DummyFolder().create_dummy_folder(id=1)
        report = Report.objects.get(id=1)
        expected_parent       = parent
        expected_filename     = "new_file_name"
        expected_file         = report.file
        expected_file_content = report.file.read()
        expected_upload_on    = report.uploaded_on
        report.file.close()

        # Користувач відкриває сторінку
        self.browser.get('%s%s' % (self.server_url, self.this_url))

        # Бачить у полі очікувану інформацію
        inputbox = self.browser.find_element_by_id('id_filename')
        self.assertEqual(inputbox.get_attribute('value'), report.filename)

        # Видаляє з поля дані
        inputbox = self.browser.find_element_by_id('id_filename')
        inputbox.clear()

        # Вводить нове значення
        inputbox.send_keys(expected_filename)

        # Натискає кнопку submit
        button = self.browser.find_element_by_css_selector('input[type=submit]')
        button.click()

        # Все збережено вірно?
        report = Report.objects.get(id=1)
        self.assertEqual(report.parent,      expected_parent)
        self.assertEqual(report.filename,    expected_filename)
        self.assertEqual(report.file,        expected_file)
        self.assertEqual(report.file.read(), expected_file_content)
        self.assertEqual(report.uploaded_on, expected_upload_on)

        report.file.close()

        # Має бути перехід на потрібну сторінку
        self.check_passed_link(expected_regex=report.get_absolute_url())

        print('finished: %s' % inspect.stack()[0][3], end=' >> ')
Beispiel #20
0
    def test_error_message_if_parent_name_not_unique_together(self):
        parent = Folder.objects.get(id=1)

        DummyFolder().create_dummy_folder(parent=parent, name="double_name")

        # Користувач відкриває сторінку
        self.browser.get('%s%s' % (self.server_url, self.this_url))

        # Вводить у полі дані
        inputbox = self.browser.find_element_by_id('id_name')
        inputbox.send_keys('double_name')

        # Натискає кнопку submit
        button = self.browser.find_element_by_css_selector('input[type=submit]')
        button.click()

        error = self.get_error_element(".errorlist")
        self.assertEqual(error.text, "Тека з таким Материнська тека та Тека вже існує.")

        print('finished: %s' % inspect.stack()[0][3], end=' >> ')
    def test_response_for_download_zip_gives_proper_value_3(self):
        file2 = SimpleUploadedFile("file2.txt", b"file_content")
        report2 = DummyFolder().create_dummy_report(self.root, file=file2)

        zipFilename = "%s.zip" % self.root.name
        fn = ' filename="%s";' % transliterate(zipFilename)
        fns = " filename*=utf-8''%s;" % urlquote(zipFilename)
        expected_content_disposition = 'attachment' + fn + fns

        resp, zipFilename, msg = response_for_download_zip(self.root, 15)

        self.assertEqual(zipFilename, 'Тека файлів.zip')
        self.assertEqual(msg, 'Завеликий zip. Решту файлів відкинуто')
        self.assertEqual(resp.get('Content-Disposition'),
                         expected_content_disposition)
        self.assertEqual(resp.get('Content-Length'), '232')
        self.assertEqual(resp.get('Content-Type'), 'application/zip')
        # self.assertEqual(resp.content, b'file_content')

        report2.file.delete()
    def test_visitor_can_update_report_parent(self):
        new_parent = DummyFolder().create_dummy_folder(id=2)
        report = Report.objects.get(id=1)
        expected_parent       = new_parent
        expected_filename     = report.filename
        expected_file         = report.file
        expected_file_content = report.file.read()
        expected_upload_on    = report.uploaded_on
        report.file.close()

        # Користувач відкриває сторінку
        self.browser.get('%s%s' % (self.server_url, self.this_url))

        # Бачить у полі очікувану інформацію
        inputbox = self.browser.find_element_by_id('id_parent')
        all_options = inputbox.find_elements_by_tag_name("option")
        for option in all_options:
            if option.is_selected():
                self.assertEqual(option.get_attribute('value'), '1')

        # Вибирає значення
        inputbox = self.browser.find_element_by_id('id_parent')
        self.choose_option_in_select(inputbox, val='2')

        # Натискає кнопку submit
        button = self.browser.find_element_by_css_selector('input[type=submit]')
        button.click()

        # Все збережено вірно?
        report = Report.objects.get(id=1)
        self.assertEqual(report.parent,      expected_parent)
        self.assertEqual(report.filename,    expected_filename)
        self.assertEqual(report.file,        expected_file)
        self.assertEqual(report.file.read(), expected_file_content)
        self.assertEqual(report.uploaded_on, expected_upload_on)
        report.file.close()

        # Має бути перехід на потрібну сторінку
        self.check_passed_link(expected_regex=report.get_absolute_url())

        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")
Beispiel #24
0
 def setUp(self):
     self.root = DummyFolder().create_dummy_root_folder()
     self.file = SimpleUploadedFile("file.txt", b"file_content")
     self.report = DummyFolder().create_dummy_report(self.root,
                                                     file=self.file)
Beispiel #25
0
 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))
Beispiel #26
0
 def test_iconpath(self):
     r0 = DummyFolder().create_dummy_report(self.root)
     self.assertEqual(iconpath(self.root), get_iconPathForFolder())
     self.assertEqual(iconpath(self.report), get_iconPathByFileExt('.txt'))
     self.assertEqual(iconpath(r0), "")
     self.assertEqual(fileext(''), '')
Beispiel #27
0
 def setUp(self):
     self.dummy_user = AnonymousUser()
     DummyFolder().create_dummy_catalogue()
     DummyFlat().create_dummy_building()
 def setUp(self):
     self.dummy_user = self.create_dummy_user()
     self.add_user_cookie_to_browser(self.dummy_user)
     self.get_data_links_number()
     parent = DummyFolder().create_dummy_folder(id=1)
     DummyFolder().create_dummy_report(parent=parent, id=1, user=self.dummy_user)
 def setUp(self):
     self.dummy_user = self.create_dummy_user()
     self.add_user_cookie_to_browser(self.dummy_user)
     parent = DummyFolder().create_dummy_folder(id=1)
     report = DummyFolder().create_dummy_report(parent=parent, id=1)
Beispiel #30
-16
 def test_saving_and_retrieving_files(self):
     root = DummyFolder().create_dummy_root_folder()
     file = SimpleUploadedFile("file.txt", b"file_content")
     expected = file.read()
     DummyFolder().create_dummy_report(root, file=file)
     saved_report = Report.objects.first()
     # Перевіряємо, чи збереглася первинна назва файла
     self.assertEqual(saved_report.filename, "file.txt")
     # Чи правильний фактичний шлях до файла
     basename = os.path.basename(saved_report.file.path)
     self.assertEqual(basename, "1.data")
     # Час створення (до секунди) співпадає з поточним?
     self.assertAlmostEqual(saved_report.uploaded_on, now(), delta=timedelta(minutes=1))
     # Вмісти збереженого файда і первинного співпадають?
     self.assertEqual(saved_report.file.read(), expected)
     # Видляємо з диска (бо файл по-чесному записався в /uploads/folders/0/1.data)
     saved_report.file.delete()