Raphael Hertzog <hert...@debian.org> writes: > On Fri, 09 Dec 2016, efkin wrote: >> I looked for the driver but it was not on stable/main so went for >> chromedriver. And the situation improved considireously. Then realized >> that improper method was used for closing the driver, leading to >> undesired spwaning of driver processes. > > Thanks, I applied your patches. But while you say that the situation > improved, I still see failures (both on jessie and on stretch/sid). Do you > plan to look into those failures?
I'm on it! Just attached some patches that should fix most part of functional_test suite: $ python manage.py test functional_tests Creating test database for alias 'default'... Destroying old test database 'default'... ................................ ---------------------------------------------------------------------- Ran 32 tests in 611.289s -- efkin.
>From 04a9814bd0d91ee32ad924d063c976c9638b67f8 Mon Sep 17 00:00:00 2001 From: efkin <ef...@riseup.net> Date: Fri, 9 Dec 2016 15:45:48 +0100 Subject: [PATCH 1/5] Update session hash after password change Since Django >= 1.7 SessionAuthenticationMiddleware invalidates session after password change. --- django_email_accounts/views.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/django_email_accounts/views.py b/django_email_accounts/views.py index 084f35e..5bb2a17 100644 --- a/django_email_accounts/views.py +++ b/django_email_accounts/views.py @@ -14,6 +14,7 @@ from django.contrib import messages from django.contrib.auth import authenticate from django.contrib.auth import login from django.contrib.auth import logout +from django.contrib.auth import update_session_auth_hash from django.utils.decorators import method_decorator from django.shortcuts import render from django.shortcuts import get_object_or_404 @@ -273,6 +274,7 @@ class PasswordChangeView(LoginRequiredMixin, MessageMixin, FormView): def form_valid(self, form, *args, **kwargs): form.save() + update_session_auth_hash(self.request, form.user) return super(PasswordChangeView, self).form_valid(form, *args, **kwargs) -- 2.1.4
>From 8314bcb7a0ed162c07ccf078c1d181440f297e4b Mon Sep 17 00:00:00 2001 From: efkin <ef...@riseup.net> Date: Fri, 9 Dec 2016 16:55:09 +0100 Subject: [PATCH 2/5] Add missing Architecture test fixture With this fixture, RepositoryAdminTest.test_respository_add() can be executed smoothly. --- distro_tracker/core/fixtures/repository-architectures-test-fixture.json | 1 + functional_tests/tests.py | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 distro_tracker/core/fixtures/repository-architectures-test-fixture.json diff --git a/distro_tracker/core/fixtures/repository-architectures-test-fixture.json b/distro_tracker/core/fixtures/repository-architectures-test-fixture.json new file mode 100644 index 0000000..c2f9140 --- /dev/null +++ b/distro_tracker/core/fixtures/repository-architectures-test-fixture.json @@ -0,0 +1 @@ +[{"fields": {"name": "amd64"}, "model": "core.architecture", "pk": 1}, {"fields": {"name": "armel"}, "model": "core.architecture", "pk": 2}, {"fields": {"name": "armhf"}, "model": "core.architecture", "pk": 3}, {"fields": {"name": "hurd-i386"}, "model": "core.architecture", "pk": 4}, {"fields": {"name": "i386"}, "model": "core.architecture", "pk": 5}, {"fields": {"name": "ia64"}, "model": "core.architecture", "pk": 6}, {"fields": {"name": "kfreebsd-amd64"}, "model": "core.architecture", "pk": 7}, {"fields": {"name": "kfreebsd-i386"}, "model": "core.architecture", "pk": 8}, {"fields": {"name": "mips"}, "model": "core.architecture", "pk": 9}, {"fields": {"name": "mipsel"}, "model": "core.architecture", "pk": 10}, {"fields": {"name": "powerpc"}, "model": "core.architecture", "pk": 11}, {"fields": {"name": "s390"}, "model": "core.architecture", "pk": 12}, {"fields": {"name": "s390x"}, "model": "core.architecture", "pk": 13}, {"fields": {"name": "sparc"}, "model": "core.architecture", "pk": 14}, {"fields": {"name": "all"}, "model": "core.architecture", "pk": 15}, {"fields": {"name": "any"}, "model": "core.architecture", "pk": 16}, {"fields": {"name": "alpha"}, "model": "core.architecture", "pk": 17}, {"fields": {"name": "arm"}, "model": "core.architecture", "pk": 18}, {"fields": {"name": "arm64"}, "model": "core.architecture", "pk": 19}, {"fields": {"name": "armeb"}, "model": "core.architecture", "pk": 20}, {"fields": {"name": "avr32"}, "model": "core.architecture", "pk": 21}, {"fields": {"name": "hppa"}, "model": "core.architecture", "pk": 22}, {"fields": {"name": "m32r"}, "model": "core.architecture", "pk": 23}, {"fields": {"name": "m68k"}, "model": "core.architecture", "pk": 24}, {"fields": {"name": "mips64"}, "model": "core.architecture", "pk": 25}, {"fields": {"name": "mips64el"}, "model": "core.architecture", "pk": 26}, {"fields": {"name": "mipsn32"}, "model": "core.architecture", "pk": 27}, {"fields": {"name": "mipsn32el"}, "model": "core.architecture", "pk": 28}, {"fields": {"name": "or1k"}, "model": "core.architecture", "pk": 29}, {"fields": {"name": "powerpcel"}, "model": "core.architecture", "pk": 30}, {"fields": {"name": "powerpcspe"}, "model": "core.architecture", "pk": 31}, {"fields": {"name": "ppc64"}, "model": "core.architecture", "pk": 32}, {"fields": {"name": "ppc64el"}, "model": "core.architecture", "pk": 33}, {"fields": {"name": "sh3"}, "model": "core.architecture", "pk": 34}, {"fields": {"name": "sh3eb"}, "model": "core.architecture", "pk": 35}, {"fields": {"name": "sh4"}, "model": "core.architecture", "pk": 36}, {"fields": {"name": "sh4eb"}, "model": "core.architecture", "pk": 37}, {"fields": {"name": "sparc64"}, "model": "core.architecture", "pk": 38}, {"fields": {"name": "x32"}, "model": "core.architecture", "pk": 39}] \ No newline at end of file diff --git a/functional_tests/tests.py b/functional_tests/tests.py index 37dbf0a..008a292 100644 --- a/functional_tests/tests.py +++ b/functional_tests/tests.py @@ -13,6 +13,7 @@ Functional tests for Distro Tracker. """ from __future__ import unicode_literals from distro_tracker.test import LiveServerTestCase +from django.core.management import call_command from django.core.urlresolvers import reverse from django.contrib.auth import get_user_model from django.core import mail @@ -331,6 +332,7 @@ class RepositoryAdminTest(SeleniumTestCase): main_email='admin', password='admin' ) + call_command('loaddata', 'distro_tracker/core/fixtures/repository-architectures-test-fixture.json', verbosity=0) def login_to_admin(self, username='admin', password='admin'): """ -- 2.1.4
>From a8678c86979f85525a5c9002cd5591cfe600e76b Mon Sep 17 00:00:00 2001 From: efkin <ef...@riseup.net> Date: Fri, 9 Dec 2016 17:11:39 +0100 Subject: [PATCH 3/5] Fix wrong URL It was causing Timeout Error on test suite execution. --- functional_tests/tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/functional_tests/tests.py b/functional_tests/tests.py index 008a292..074ec16 100644 --- a/functional_tests/tests.py +++ b/functional_tests/tests.py @@ -749,7 +749,7 @@ class UserRegistrationTest(UserAccountsTestMixin, SeleniumTestCase): self.send_enter('id_password') # The user goes to the package page - self.get_page('/' + package_name) + self.get_page('/pkg/' + package_name) # The page shows a link to log out. self.assert_in_page_body('Log out') # The user selects the link to log out. @@ -781,7 +781,7 @@ class SubscribeToPackageTest(UserAccountsTestMixin, SeleniumTestCase): # The user first logs in self.log_in() # The user opens a package page - self.get_page('/' + self.package.name) + self.get_page('/pkg/' + self.package.name) # The page shows a button allowing them to subscribe to the package. self.assert_element_with_id_in_page('subscribe-button') @@ -811,7 +811,7 @@ class SubscribeToPackageTest(UserAccountsTestMixin, SeleniumTestCase): package. """ # The user opens the package page - self.get_page('/' + self.package.name) + self.get_page('/pkg/' + self.package.name) # ...and tries subscribing to the package self.get_element_by_id('subscribe-not-logged-in-button').click() # ...only to find himself redirected to the log in page. -- 2.1.4
>From fb362272b4bf470a0c95356830f4d404cf108825 Mon Sep 17 00:00:00 2001 From: efkin <ef...@riseup.net> Date: Fri, 9 Dec 2016 17:41:17 +0100 Subject: [PATCH 4/5] Fix too short await time This caused a Timeout Error on test suite execution. --- functional_tests/tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functional_tests/tests.py b/functional_tests/tests.py index 074ec16..76b7f5a 100644 --- a/functional_tests/tests.py +++ b/functional_tests/tests.py @@ -792,7 +792,7 @@ class SubscribeToPackageTest(UserAccountsTestMixin, SeleniumTestCase): # The subscribe button is no longer found in the page button = self.get_element_by_id('subscribe-button') # === Give the page a chance to refresh === - wait = ui.WebDriverWait(self.browser, 1) + wait = ui.WebDriverWait(self.browser, 2) wait.until(lambda browser: not button.is_displayed()) self.assertFalse(button.is_displayed()) -- 2.1.4
>From fba692e2e68e44745da137da10104fa1544016a9 Mon Sep 17 00:00:00 2001 From: efkin <ef...@riseup.net> Date: Fri, 9 Dec 2016 19:07:28 +0100 Subject: [PATCH 5/5] Add missing html id tag It was violating SubscribeToPackageTest class. --- distro_tracker/accounts/templates/accounts/subscriptions.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distro_tracker/accounts/templates/accounts/subscriptions.html b/distro_tracker/accounts/templates/accounts/subscriptions.html index ac52d67..0ce1c16 100644 --- a/distro_tracker/accounts/templates/accounts/subscriptions.html +++ b/distro_tracker/accounts/templates/accounts/subscriptions.html @@ -190,7 +190,7 @@ </div> <div class="col-sm-9"> <input type="hidden" value="{% url 'dtracker-accounts-subscriptions' %}" name="next"> - <input class="form-control package-completion" type="text" name="package" placeholder="Choose package..."> + <input id="package-search-input" class="form-control package-completion" type="text" name="package" placeholder="Choose package..."> </div> </div> <div class="form-group row"> -- 2.1.4