Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reference to python 2.7 #29

Merged
merged 1 commit into from
Jan 12, 2013
Merged

Reference to python 2.7 #29

merged 1 commit into from
Jan 12, 2013

Conversation

kellanjacobs
Copy link

eleddy, can you please merge this.

eleddy added a commit that referenced this pull request Jan 12, 2013
@eleddy eleddy merged commit 5316129 into plone:4.2 Jan 12, 2013
tisto referenced this pull request Jan 23, 2015
Branch: refs/heads/master
Date: 2014-10-13T21:09:29+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/ade6c59960e7780883d3c523179bfc3ef8d1d7d4

Setup p.a.testing infrastructure

Files changed:
A plone/app/users/testing.py
M plone/app/users/tests/test_doctests.py

diff --git a/plone/app/users/testing.py b/plone/app/users/testing.py
new file mode 100644
index 0000000..f092566
--- /dev/null
+++ b/plone/app/users/testing.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+from Products.CMFPlone.tests.utils import MockMailHost
+from Products.MailHost.interfaces import IMailHost
+from plone.app.testing import PLONE_FIXTURE
+from plone.app.testing import PloneSandboxLayer
+from plone.app.testing.layers import FunctionalTesting
+from plone.app.testing.layers import IntegrationTesting
+from zope.component import getSiteManager
+from zope.configuration import xmlconfig
+
+import doctest
+
+
+class PloneAppUsersLayer(PloneSandboxLayer):
+    defaultBases = (PLONE_FIXTURE, )
+
+    def setUpZope(self, app, configurationContext):
+        import plone.app.users
+        xmlconfig.file(
+            'configure.zcml',
+            plone.app.users,
+            context=configurationContext
+        )
+
+    def setUpPloneSite(self, portal):
+        # Configure mock mail host
+        mail_host = portal.MailHost = MockMailHost('MailHost')
+        site_manager = getSiteManager(portal)
+        site_manager.unregisterUtility(provided=IMailHost)
+        site_manager.registerUtility(mail_host, IMailHost)
+
+
+PLONE_APP_USERS_FIXTURE = PloneAppUsersLayer()
+PLONE_APP_USERS_INTEGRATION_TESTING = IntegrationTesting(
+    bases=(PLONE_APP_USERS_FIXTURE, ),
+    name='PloneAppUsersLayer:Integration'
+)
+PLONE_APP_USERS_FUNCTIONAL_TESTING = FunctionalTesting(
+    bases=(PLONE_APP_USERS_FIXTURE, ),
+    name='PloneAppUsersLayer:Functional'
+)
+
+
+optionflags = (doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE)
diff --git a/plone/app/users/tests/test_doctests.py b/plone/app/users/tests/test_doctests.py
index 5fbcbe8..25a0625 100644
--- a/plone/app/users/tests/test_doctests.py
+++ b/plone/app/users/tests/test_doctests.py
@@ -1,15 +1,12 @@
 # -*- coding: utf-8 -*-
-from Products.PloneTestCase.PloneTestCase import setupPloneSite
-from Testing.ZopeTestCase import FunctionalDocFileSuite
-from plone.app.users.tests.base import BaseTestCase
-from unittest import TestSuite
+from plone.app.users.testing import PLONE_APP_USERS_FUNCTIONAL_TESTING
+from plone.app.users.testing import optionflags
+from plone.testing import layered
 
 import doctest
+import unittest
 
 
-setupPloneSite()
-OPTIONFLAGS = (doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE)
-
 doc_tests = [
     'duplicate_email.rst',
     'email_login.rst',
@@ -27,12 +24,16 @@
 
 
 def test_suite():
-    suite = TestSuite()
-    for test_file in doc_tests:
-        suite.addTest(FunctionalDocFileSuite(
-            test_file,
-            optionflags=OPTIONFLAGS,
-            package='plone.app.users.tests',
-            test_class=BaseTestCase
-        ))
+    suite = unittest.TestSuite()
+    suite.addTests([
+        layered(
+            doctest.DocFileSuite(
+                'tests/{0}'.format(test_file),
+                package='plone.app.users',
+                optionflags=optionflags
+            ),
+            layer=PLONE_APP_USERS_FUNCTIONAL_TESTING)
+        for test_file in doc_tests
+    ])
+
     return suite


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:29+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/c6f3a6a02ac8e88b7efaf8bd034bda691331e14f

Migrate flexible_user_registration.rst

Files changed:
M plone/app/users/tests/flexible_user_registration.rst

diff --git a/plone/app/users/tests/flexible_user_registration.rst b/plone/app/users/tests/flexible_user_registration.rst
index 89a7d9b..5d25e19 100644
--- a/plone/app/users/tests/flexible_user_registration.rst
+++ b/plone/app/users/tests/flexible_user_registration.rst
@@ -1,7 +1,13 @@
+======================================
 Testing the flexible user registration
 ======================================
 
-    >>> browser = self.browser
+    >>> from plone.testing.z2 import Browser
+    >>> import transaction
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
     >>> from zope.component import getUtility
     >>> from plone.keyring.interfaces import IKeyManager
     >>> import hmac
@@ -51,12 +57,13 @@ Check that the site admin has a link to the configlet in the control panel.
     >>> 'home_page' in user_registration_fields.displayOptions
     False
 
-    >>> self.browser.getControl(name='_authenticator', index=0)
+    >>> browser.getControl(name='_authenticator', index=0)
     <Control name='_authenticator' type='hidden'>
 
 Let's add home_page to the list of registration form fields.
 (Setting this by hand since add/remove widget doesn't work properly without javascript)
     >>> portal.portal_properties.site_properties._updateProperty('user_registration_fields', ['fullname', 'username', 'email', 'password', 'home_page'])
+    >>> transaction.commit()
 
 It should show up at the end of the form.
     >>> browser.open('http://nohost/plone/@@register')
@@ -85,6 +92,7 @@ Log out. Assert that we now have the home_page in the join form.
 Rearrange the fields
 (Setting this by hand since add/remove widget doesn't work properly without javascript)
     >>> portal.portal_properties.site_properties._updateProperty('user_registration_fields', ['fullname', 'username', 'password', 'home_page', 'email'])
+    >>> transaction.commit()
     >>> browser.open('http://nohost/plone/@@register')
     >>> browser.contents
     '...Home page...E-mail...'
@@ -127,6 +135,7 @@ Check render register form in 'Use Email As Login' mode.
 
     >>> portal.portal_properties.site_properties._updateProperty('use_email_as_login', True)
     >>> portal.portal_properties.site_properties._updateProperty('user_registration_fields', ['username'])
+    >>> transaction.commit()
     >>> browser.open('http://nohost/plone/@@register')
     >>> 'Registration form' in browser.contents
     True
@@ -146,6 +155,8 @@ Revert email mode.
 Check register form with portrait field.
 
     >>> portal.portal_properties.site_properties._updateProperty('user_registration_fields', ['portrait'])
+    >>> transaction.commit()
+
     >>> browser.open('http://nohost/plone/@@register')
     >>> 'Registration form' in browser.contents
     True
@@ -166,6 +177,8 @@ Check more validation errors. Test Confirmation Password and invalid
 email, and reserved user name validations:
 
     >>> portal.portal_properties.site_properties._updateProperty('user_registration_fields', ['username', 'email', 'password', 'mail_me'])
+    >>> transaction.commit()
+
     >>> browser.open('http://nohost/plone/@@register')
     >>> 'Registration form' in browser.contents
     True
@@ -197,6 +210,7 @@ supported by our test browser.
 Set list of registration fields:
 
     >>> portal.portal_properties.site_properties._updateProperty('user_registration_fields', ['username', 'email'])
+    >>> transaction.commit()
 
 Login as admin.
 


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/efc09252d543414438e716973ee6985541c1c359

Migrate email_login.rst

Files changed:
M plone/app/users/tests/email_login.rst

diff --git a/plone/app/users/tests/email_login.rst b/plone/app/users/tests/email_login.rst
index 9f32103..cadd8c5 100644
--- a/plone/app/users/tests/email_login.rst
+++ b/plone/app/users/tests/email_login.rst
@@ -1,18 +1,31 @@
+===================================
 Testing email address as login name
 ===================================
 
-    >>> browser = self.browser
-    >>> browser.open('http://nohost/plone')
+Set up
+======
+
+    >>> from plone.app.testing import SITE_OWNER_NAME
+    >>> from plone.app.testing import SITE_OWNER_PASSWORD
+    >>> from plone.testing.z2 import Browser
+
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+
+Browsers
+--------
 
-    Set up a mailhost...
-    >>> self.setMailHost()
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
+
+Configure security
+------------------
 
-    Configure the security.
-    >>> from Products.PloneTestCase.PloneTestCase import portal_owner, default_password
     >>> browser.open('http://nohost/plone/login_form')
-    >>> browser.getControl('Login Name').value = portal_owner
-    >>> browser.getControl('Password').value = default_password
+    >>> browser.getControl('Login Name').value = SITE_OWNER_NAME
+    >>> browser.getControl('Password').value = SITE_OWNER_PASSWORD
     >>> browser.getControl('Log in').click()
+
     >>> browser.open('http://nohost/plone/@@security-controlpanel')
     >>> browser.getControl('Enable self-registration').selected = True
     >>> browser.getControl('Let users select their own passwords').selected = True
@@ -20,24 +33,32 @@ Testing email address as login name
     >>> browser.getControl('Save').click()
     >>> 'Changes saved' in browser.contents
     True
+
     >>> browser.getLink(url='http://nohost/plone/logout').click()
     >>> 'Log in' in browser.contents
     True
 
-    Logged out user should now see the register link.
+Visitors can register
+=====================
+
+Logged out user should now see the register link.
+
     >>> 'Register' in browser.contents
     True
-    >>> browser.open('http://nohost/plone/@@register')
 
-    The form should now be visible, without the user name field.
+The form should now be visible, without the user name field.
+
+    >>> browser.open('http://nohost/plone/@@register')
     >>> 'User Name' in browser.contents
     False
 
-    The form should be using CSRF protection
-    >>> self.browser.getControl(name='_authenticator')
+The form should be using CSRF protection.
+
+    >>> browser.getControl(name='_authenticator')
     <Control name='_authenticator' type='hidden'>
 
-    Fill out the form, using an odd email address that should not give problems.
+Fill out the form, using an odd email address that should not give problems.
+
     >>> browser.getControl('Full Name').value = 'Bob Jones'
     >>> browser.getControl('E-mail').value = 'bob-jones+test@example.com'
     >>> browser.getControl('Password').value = 'secret'
@@ -46,7 +67,11 @@ Testing email address as login name
     >>> 'Failed to create your account' in browser.contents
     False
 
-    We can login immediately.
+Login
+=====
+
+We can login immediately.
+
     >>> 'Click the button to log in immediately.' in browser.contents
     True
     >>> browser.getControl('Log in').click()
@@ -59,34 +84,45 @@ Testing email address as login name
     True
     >>> browser.getLink(url='http://nohost/plone/logout').click()
 
-    We login as manager. The login form now has a different label for
-    the login name.
+Login form changes
+==================
+
+The login form now has a different label for the login name.
+
     >>> browser.open('http://nohost/plone/login_form')
-    >>> browser.getControl('E-mail').value = portal_owner
-    >>> browser.getControl('Password').value = default_password
+    >>> browser.getControl('E-mail').value = SITE_OWNER_NAME
+    >>> browser.getControl('Password').value = SITE_OWNER_PASSWORD
     >>> browser.getControl('Log in').click()
 
-    The user id is now bob-jones, based on the full name:
+The user id is now bob-jones, based on the full name:
+
     >>> browser.open('http://nohost/plone/@@user-information?userid=bob-jones')
     >>> 'Bob Jones' in browser.contents
     True
 
-    Great! The user-facing form works. Let's try the manager's version...
+Manager adds a new member
+=========================
+
+Great! The user-facing form works. Let's try the manager's version...
+
     >>> browser.open('http://nohost/plone/@@usergroup-userprefs')
     >>> browser.getLink('Add New User').click()
     >>> '@@new-user' in browser.url
     True
 
-    The form should be using CSRF protection
-    >>> self.browser.getControl(name='_authenticator', index=0)
+The form should be using CSRF protection.
+
+    >>> browser.getControl(name='_authenticator', index=0)
     <Control name='_authenticator' type='hidden'>
 
-    Check that user name is not displayed.
+Check that user name is not displayed.
+
     >>> 'User Name' in browser.contents
     False
 
-    Fill out the form.  We use the same full name as before, to test
-    that we get a different user id.
+Fill out the form.
+Use the same full name as before, to test that we get a different user id.
+
     >>> browser.getControl('Full Name').value = 'Bob Jones'
     >>> browser.getControl('E-mail').value = 'bob-jones+test2@example.com'
     >>> browser.getControl('Password').value = 'secret'
@@ -97,7 +133,8 @@ Testing email address as login name
     >>> browser.contents
     '...User added...bob-jones-1...'
 
-    We can really get the new user.
+We can really get the new user.
+
     >>> browser.getControl('Show all').click()
     >>> browser.getLink(url='bob-jones-1').click()
     >>> '@@user-information?userid=bob-jones-1' in browser.url


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/fd07631e54dc578aa23f8a2c1055a06cc44a6cc3

Migrate duplicate_email.rst

Files changed:
M plone/app/users/tests/duplicate_email.rst

diff --git a/plone/app/users/tests/duplicate_email.rst b/plone/app/users/tests/duplicate_email.rst
index 80084e5..b6eb5f6 100644
--- a/plone/app/users/tests/duplicate_email.rst
+++ b/plone/app/users/tests/duplicate_email.rst
@@ -1,50 +1,121 @@
+=============================
 Test duplicate mail addresses
 =============================
 
 When email address is used as login name, duplicates are not allowed.
 
-Use email addresses as login name:
+Use email addresses as login name.
+
+Set up
+======
+
+    >>> from plone.app.testing import SITE_OWNER_NAME
+    >>> from plone.app.testing import SITE_OWNER_PASSWORD
+    >>> from plone.testing.z2 import Browser
+
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+
+    >>> user1_name = 'User one'
+    >>> user1_email = 'userone@example.com'
+    >>> user1_password = 'secret'
+
+    >>> user2_name = 'User two'
+    >>> user2_email = 'usertwo@example.com'
+    >>> user2_password = 'secret'
 
-    >>> ptool = self.portal.portal_properties
-    >>> ptool.site_properties._updateProperty('use_email_as_login', True)
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
 
-Create a new user one:
+Configure security
+------------------
 
-    >>> mtool = self.portal.portal_membership
-    >>> mtool.addMember('userone@example.com', 'secret', [], [])
-    >>> userone = mtool.getMemberById('userone@example.com')
-    >>> userone.setMemberProperties({'email':'userone@example.com'})
+    >>> browser.open('http://nohost/plone/login_form')
+    >>> browser.getControl('Login Name').value = SITE_OWNER_NAME
+    >>> browser.getControl('Password').value = SITE_OWNER_PASSWORD
+    >>> browser.getControl('Log in').click()
 
-Create a new user two:
+    >>> browser.open('http://nohost/plone/@@security-controlpanel')
+    >>> browser.getControl('Use email address as login name ').selected = True
+    >>> browser.getControl('Save').click()
+    >>> 'Changes saved' in browser.contents
+    True
+
+Create two users
+----------------
+
+First one:
 
-    >>> mtool.addMember('usertwo@example.com', 'secret', [], [])
-    >>> usertwo = mtool.getMemberById('usertwo@example.com')
-    >>> usertwo.setMemberProperties({'email':'usertwo@example.com'})
+    >>> browser.open('http://nohost/plone/@@usergroup-userprefs')
+    >>> browser.getLink('Add New User').click()
+    >>> '@@new-user' in browser.url
+    True
+
+Fill out the form.
+
+    >>> browser.getControl('Full Name').value = user1_name
+    >>> browser.getControl('E-mail').value = user1_email
+    >>> browser.getControl('Password').value = user1_password
+    >>> browser.getControl('Confirm password').value = user1_password
+    >>> browser.getControl('Register').click()
+    >>> '@@usergroup-userprefs' in browser.url
+    True
+    >>> browser.contents
+    '...User added...'
+
+The second:
+
+    >>> browser.open('http://nohost/plone/@@usergroup-userprefs')
+    >>> browser.getLink('Add New User').click()
+    >>> '@@new-user' in browser.url
+    True
+
+Fill out the form.
+
+    >>> browser.getControl('Full Name').value = user2_name
+    >>> browser.getControl('E-mail').value = user2_email
+    >>> browser.getControl('Password').value = user2_password
+    >>> browser.getControl('Confirm password').value = user2_password
+    >>> browser.getControl('Register').click()
+    >>> '@@usergroup-userprefs' in browser.url
+    True
+    >>> browser.contents
+    '...User added...'
+
+Logout:
+
+    >>> browser.getLink(url='http://nohost/plone/logout').click()
+
+Login
+=====
 
 Login as user two:
 
-    >>> self.browser.open('http://nohost/plone/')
-    >>> self.browser.getLink('Log in').click()
+    >>> browser.open('http://nohost/plone/')
+    >>> browser.getLink('Log in').click()
 
-    >>> self.browser.getControl('E-mail').value = 'usertwo@example.com'
-    >>> self.browser.getControl('Password').value = 'secret'
-    >>> self.browser.getControl('Log in').click()
-    >>> 'Login failed' in self.browser.contents
+    >>> browser.getControl('E-mail').value = user2_email
+    >>> browser.getControl('Password').value = user2_password
+    >>> browser.getControl('Log in').click()
+    >>> 'Login failed' in browser.contents
     False
 
-Now we should be able to access the user data panel:
+Should be able to access the user data panel:
 
-    >>> self.browser.open('http://nohost/plone/@@personal-information')
-    >>> 'Login Name' in self.browser.contents
+    >>> browser.open('http://nohost/plone/@@personal-information')
+    >>> 'Login Name' in browser.contents
     False
-    >>> self.browser.url.endswith('@@personal-information')
+    >>> browser.url.endswith('@@personal-information')
     True
 
+Change e-mail
+=============
+
 Setting the e-mail address to an existing one should give an error message:
 
-    >>> self.browser.getControl('E-mail').value = 'userone@example.com'
-    >>> self.browser.getControl('Save').click()
-    >>> 'The email address you selected is already in use' in self.browser.contents
+    >>> browser.getControl('E-mail').value = user1_email
+    >>> browser.getControl('Save').click()
+    >>> 'The email address you selected is already in use' in browser.contents
     True
-    >>> 'Changes saved' in self.browser.contents
+    >>> 'Changes saved' in browser.contents
     False


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/929bf1efd02f57db9244deff7562e41e3301555d

Migrate member_search.rst

Files changed:
M plone/app/users/tests/member_search.rst

diff --git a/plone/app/users/tests/member_search.rst b/plone/app/users/tests/member_search.rst
index 9337d9b..13e3585 100644
--- a/plone/app/users/tests/member_search.rst
+++ b/plone/app/users/tests/member_search.rst
@@ -1,11 +1,61 @@
+==============================
 Testing the member search form
 ==============================
 
 This is about the 'member_search' form. This test will try to use the form as
 anonymous. Then login as a Plone user, and try again.
 
+Set up
+======
+
+    >>> from plone.app.testing import SITE_OWNER_NAME
+    >>> from plone.app.testing import SITE_OWNER_PASSWORD
+    >>> from plone.app.testing import TEST_USER_NAME
+    >>> from plone.app.testing import TEST_USER_PASSWORD
+    >>> from plone.testing.z2 import Browser
+
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+
     >>> view_name = '@@member-search'
-    >>> browser = self.browser
+
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
+
+Manager creates a user
+----------------------
+
+Login as manager:
+
+    >>> browser.open('http://nohost/plone/login_form')
+    >>> browser.getControl('Login Name').value = SITE_OWNER_NAME
+    >>> browser.getControl('Password').value = SITE_OWNER_PASSWORD
+    >>> browser.getControl('Log in').click()
+
+Go to the add new user form:
+
+    >>> browser.open('http://nohost/plone/@@usergroup-userprefs')
+    >>> browser.getLink('Add New User').click()
+
+Fill out the form.
+
+    >>> browser.getControl('Full Name').value = 'Bob Jones'
+    >>> browser.getControl('User Name').value = 'bob-jones'
+    >>> browser.getControl('E-mail').value = 'bob-jones+test2@example.com'
+    >>> browser.getControl('Password').value = 'secret'
+    >>> browser.getControl('Confirm password').value = 'secret'
+    >>> browser.getControl('Register').click()
+    >>> browser.contents
+    '...User added...bob-jones...'
+
+Logout:
+
+    >>> browser.getLink(url='http://nohost/plone/logout').click()
+    >>> 'Log in' in browser.contents
+    True
+
+Member search as anonymous
+==========================
 
 Viewing this form should be possible for anonymous users:
 
@@ -29,11 +79,14 @@ But they will not see any member of the portal.
     >>> 'You are not allowed to list portal members.' in browser.contents
     True
 
+Member search logged-in
+=======================
+
 So let's login as Plone user and try again:
 
     >>> browser.getLink('Log in').click()
-    >>> browser.getControl('Login Name').value = 'test_user_1_'
-    >>> browser.getControl('Password').value = 'secret'
+    >>> browser.getControl('Login Name').value = TEST_USER_NAME
+    >>> browser.getControl('Password').value = TEST_USER_PASSWORD
     >>> browser.getControl('Log in').click()
 
 Now we should be on the member search as a logged in user:
@@ -43,12 +96,12 @@ Now we should be on the member search as a logged in user:
     >>> browser.url.endswith(view_name)
     True
 
-So let's search again. We should see two Members (admin, test_user_1_):
+So let's search again. We should see two members (test_user_1_ and bob):
 
     >>> browser.getControl(name='form.buttons.search').click()
     >>> '2 items matching your search terms.' in browser.contents
     True
-    >>> '<a href="http://nohost/plone/Members/test_user_1_">'in browser.contents
+    >>> '<a href="http://nohost/plone/author/test_user_1_">'in browser.contents
     True
-    >>> '<a href="http://nohost/plone/author/admin">'in browser.contents
+    >>> '<a href="http://nohost/plone/author/bob-jones">'in browser.contents
     True


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/2bd9bd5027c73b7f2a25f8966a3a4792411eac69

Migrate test_loginname_generator.py

Files changed:
M plone/app/users/tests/test_loginname_generator.py

diff --git a/plone/app/users/tests/test_loginname_generator.py b/plone/app/users/tests/test_loginname_generator.py
index 0b3ea51..e706725 100644
--- a/plone/app/users/tests/test_loginname_generator.py
+++ b/plone/app/users/tests/test_loginname_generator.py
@@ -1,18 +1,25 @@
 # -*- coding: utf-8 -*-
-# Note: test setup somehow fails when only tests from this file are run.
 from plone.app.users.browser.interfaces import ILoginNameGenerator
 from plone.app.users.browser.register import BaseRegistrationForm
-from plone.app.users.tests.base import BaseTestCase
+from plone.app.users.testing import PLONE_APP_USERS_INTEGRATION_TESTING
 from zope.component import getSiteManager
 
+import unittest
+
+
+class TestGenerateLoginName(unittest.TestCase):
+
+    layer = PLONE_APP_USERS_INTEGRATION_TESTING
+
+    def setUp(self):
+        self.portal = self.layer['portal']
 
-class TestGenerateLoginName(BaseTestCase):
     def test_generate_user_id_simplistic(self):
         sm = getSiteManager(context=self.portal)
 
         # Without a function, return username
         self.assertEqual(
-            self.generateLoginName(dict(username='frank')),
+            self._generate_login_name(dict(username='frank')),
             'frank'
         )
 
@@ -20,11 +27,12 @@ def test_generate_user_id_simplistic(self):
         sm.registerUtility(lambda data: data['useme'],
                            provided=ILoginNameGenerator)
         self.assertEqual(
-            self.generateLoginName(dict(useme='me me me', username='frank')),
+            self._generate_login_name(dict(useme='me me me',
+                                           username='frank')),
             'me me me'
         )
 
-    def generateLoginName(self, data):
+    def _generate_login_name(self, data):
         """Generate login name, optionally registering function first"""
         form = BaseRegistrationForm(self.portal, {})
         return form.generate_login_name(data)


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/bf7ba86bb42ca2d8bd85a7b0ffb38d28a3d35928

Migrate test_userid_generator.py

Files changed:
M plone/app/users/tests/test_userid_generator.py

diff --git a/plone/app/users/tests/test_userid_generator.py b/plone/app/users/tests/test_userid_generator.py
index 4d72d55..600ce01 100644
--- a/plone/app/users/tests/test_userid_generator.py
+++ b/plone/app/users/tests/test_userid_generator.py
@@ -1,13 +1,19 @@
 # -*- coding: utf-8 -*-
-# Note: test setup somehow fails when only tests from this file are run.
 from plone.app.users.browser.interfaces import IUserIdGenerator
 from plone.app.users.browser.register import BaseRegistrationForm
-from plone.app.users.tests.base import BaseTestCase
+from plone.app.users.testing import PLONE_APP_USERS_INTEGRATION_TESTING
 from plone.app.users.utils import uuid_userid_generator
 from zope.component import getSiteManager
 
+import unittest
 
-class TestGenerateUserId(BaseTestCase):
+
+class TestGenerateUserId(unittest.TestCase):
+
+    layer = PLONE_APP_USERS_INTEGRATION_TESTING
+
+    def setUp(self):
+        self.portal = self.layer['portal']
 
     def test_standard_generate_user_id(self):
         form = BaseRegistrationForm(self.portal, {})
@@ -96,10 +102,13 @@ def test_generate_user_id_with_uuid(self):
                             form.generate_user_id(data))
 
 
-class TestGenerateUUIDUserId(BaseTestCase):
+class TestGenerateUUIDUserId(unittest.TestCase):
+
+    layer = PLONE_APP_USERS_INTEGRATION_TESTING
+
+    def setUp(self):
+        self.portal = self.layer['portal']
 
-    def afterSetUp(self):
-        super(TestGenerateUUIDUserId, self).afterSetUp()
         # If use_uuid_as_userid is set in the site_properties, we
         # generate a uuid.
         self.ptool = ptool = getattr(self.portal, 'portal_properties')


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/e194b0dff01ce965df51501e06b40a2e43b27a00

Migrate test_new_user.py

Files changed:
M plone/app/users/tests/test_new_user.py

diff --git a/plone/app/users/tests/test_new_user.py b/plone/app/users/tests/test_new_user.py
index efc5e3e..7f93ebf 100644
--- a/plone/app/users/tests/test_new_user.py
+++ b/plone/app/users/tests/test_new_user.py
@@ -1,25 +1,32 @@
 # -*- coding: utf-8 -*-
-from hashlib import sha1 as sha
-from plone.app.users.tests.base import BaseTestCase
-from plone.protect import authenticator as auth
+from plone.app.testing import TEST_USER_ID
+from plone.app.testing import setRoles
+from plone.testing.z2 import Browser
+from plone.app.users.testing import PLONE_APP_USERS_INTEGRATION_TESTING
 
-import hmac
+import transaction
+import unittest
 
 
-class TestNewUser(BaseTestCase):
+class TestNewUser(unittest.TestCase):
+
+    layer = PLONE_APP_USERS_INTEGRATION_TESTING
+
+    def setUp(self):
+        self.portal = self.layer['portal']
+        app = self.layer['app']
+        setRoles(self.portal, TEST_USER_ID, ['Manager', ])
+        self.browser = Browser(app)
 
     def test_new_user_as_site_administrator(self):
         self.portal.acl_users._doAddUser(
             'siteadmin', 'secret', ['Site Administrator'], []
         )
+        # make the user available
+        transaction.commit()
+
         self.browser.addHeader('Authorization', 'Basic siteadmin:secret')
-        # XXX need to use auth token here because there is one case of write
-        # on read for portlets that isn't hit here...
-        ring = auth._getKeyring('siteadmin')
-        secret = ring.random()
-        token = hmac.new(secret, 'siteadmin', sha).hexdigest()
-        self.browser.open('http://nohost/plone/new-user?_authenticator=%s' % (
-            token))
+        self.browser.open('http://nohost/plone/new-user')
         self.browser.getControl('User Name').value = 'newuser'
         self.browser.getControl('E-mail').value = 'newuser@example.com'
         self.browser.getControl('Password').value = 'foobar'


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/896620b7d1a2f92b53085b8af67b3798891bcc0b

Migrated test_account.py

Files changed:
M plone/app/users/tests/test_account.py

diff --git a/plone/app/users/tests/test_account.py b/plone/app/users/tests/test_account.py
index 1058e2f..e6fa52b 100644
--- a/plone/app/users/tests/test_account.py
+++ b/plone/app/users/tests/test_account.py
@@ -1,7 +1,6 @@
 # -*- coding: utf-8 -*-
-from Testing.makerequest import makerequest
-from OFS.SimpleItem import SimpleItem
 from plone.app.users.browser.account import AccountPanelSchemaAdapter
+from plone.app.users.testing import PLONE_APP_USERS_INTEGRATION_TESTING
 
 import unittest
 
@@ -23,25 +22,27 @@ def checkPermission(self, permission, context):
 
 class TestAccountPanelSchemaAdapter(unittest.TestCase):
 
+    layer = PLONE_APP_USERS_INTEGRATION_TESTING
+
+    def setUp(self):
+        self.request = self.layer['request']
+
     def test__init__no_userid(self):
-        # should edit current user
-        context = makerequest(SimpleItem('foo'))
-        context.portal_membership = DummyPortalMembership(False)
-        adapter = AccountPanelSchemaAdapter(context)
+        """Should edit current user."""
+        self.request.portal_membership = DummyPortalMembership(False)
+        adapter = AccountPanelSchemaAdapter(self.request)
         self.assertEqual('(authenticated)', adapter.context)
 
     def test__init__userid_in_request_form_for_non_manager(self):
-        # disallow for non-privileged users
-        context = makerequest(SimpleItem('foo'))
-        context.portal_membership = DummyPortalMembership(False)
-        context.REQUEST.form['userid'] = 'bob'
-        adapter = AccountPanelSchemaAdapter(context)
+        """Disallow for non-privileged users."""
+        self.request.portal_membership = DummyPortalMembership(False)
+        self.request.REQUEST.form['userid'] = 'bob'
+        adapter = AccountPanelSchemaAdapter(self.request)
         self.assertEqual('(authenticated)', adapter.context)
 
     def test__init__userid_in_request_form_for_manager(self):
-        # should allow for privileged users
-        context = makerequest(SimpleItem('foo'))
-        context.portal_membership = DummyPortalMembership(True)
-        context.REQUEST.form['userid'] = 'bob'
-        adapter = AccountPanelSchemaAdapter(context)
+        """Should allow for privileged users."""
+        self.request.portal_membership = DummyPortalMembership(True)
+        self.request.REQUEST.form['userid'] = 'bob'
+        adapter = AccountPanelSchemaAdapter(self.request)
         self.assertEqual('bob', adapter.context)


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/aa44b61803079a54e49b86f49b38e824025c735c

Migrate vocabularies.py

Files changed:
M plone/app/users/vocabularies.py

diff --git a/plone/app/users/vocabularies.py b/plone/app/users/vocabularies.py
index 96c1440..157025d 100644
--- a/plone/app/users/vocabularies.py
+++ b/plone/app/users/vocabularies.py
@@ -67,9 +67,10 @@ class GroupIdVocabulary(object):
 
       >>> from zope.component import queryUtility
       >>> from zope.schema.interfaces import IVocabularyFactory
+      >>> from zope.site.hooks import getSite
       >>> from Products.CMFCore.utils import getToolByName
 
-      >>> groups_tool = getToolByName(self.portal, 'portal_groups')
+      >>> groups_tool = getToolByName(getSite(), 'portal_groups')
       >>> groups_tool.addGroup(
       ...     'fancygroup', [], [],
       ...     title='Group Title',
@@ -80,7 +81,7 @@ class GroupIdVocabulary(object):
       >>> name = 'plone.app.users.group_ids'
       >>> util = queryUtility(IVocabularyFactory, name)
 
-      >>> fields = util(self.portal)
+      >>> fields = util(getSite())
       >>> fields
       <zope.schema.vocabulary.SimpleVocabulary object at ...>
 


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/69d763f53546a87c49b469e9180b368afe1ad9e2

Migrate userdata.rst

Files changed:
M plone/app/users/tests/userdata.rst

diff --git a/plone/app/users/tests/userdata.rst b/plone/app/users/tests/userdata.rst
index cfc0518..e25673b 100644
--- a/plone/app/users/tests/userdata.rst
+++ b/plone/app/users/tests/userdata.rst
@@ -1,49 +1,69 @@
+=====================================
 Testing the personal information form
 =====================================
 
+Set Up
+======
+
+    >>> from plone.app.testing import TEST_USER_ID
+    >>> from plone.app.testing import TEST_USER_NAME
+    >>> from plone.app.testing import TEST_USER_PASSWORD
+    >>> from plone.testing.z2 import Browser
+
+    >>> import transaction
+
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+    >>> membership = portal.portal_membership
+
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
+
 Viewing the  personal information
 ---------------------------------
 
 This is about the 'personal-information' view.
 
     >>> view_name = '@@personal-information'
+    >>> view_url = 'http://nohost/plone/{0}'.format(view_name)
 
 Viewing user data shouldn't be possible for anonymous users:
 
-    >>> self.browser.open("http://nohost/plone/" + view_name)
-    >>> 'Login Name' in self.browser.contents
-    True
+    >>> browser.open(view_url)
+    Traceback (most recent call last):
+    ...
+    Unauthorized: ...You are not authorized to access this resource...
 
 So let's login as Plone user:
-    >>> self.browser.open('http://nohost/plone/')
-    >>> self.browser.getLink('Log in').click()
-    >>> self.browser.getControl('Login Name').value = 'test_user_1_'
-    >>> self.browser.getControl('Password').value = 'secret'
-    >>> self.browser.getControl('Log in').click()
+    >>> browser.open('http://nohost/plone/')
+    >>> browser.getLink('Log in').click()
+    >>> browser.getControl('Login Name').value = TEST_USER_NAME
+    >>> browser.getControl('Password').value = TEST_USER_PASSWORD
+    >>> browser.getControl('Log in').click()
 
 Now we should be able to access the user data panel:
 
-    >>> self.browser.open("http://nohost/plone/" + view_name)
-    >>> 'Login Name' in self.browser.contents
+    >>> browser.open(view_url)
+    >>> 'Login Name' in browser.contents
     False
-    >>> self.browser.url.endswith(view_name)
+    >>> browser.url.endswith(view_name)
     True
 
 We have these controls in the form:
 
-    >>> self.browser.getControl('Full Name').value
+    >>> browser.getControl('Full Name').value
     ''
-    >>> self.browser.getControl('E-mail').value
+    >>> browser.getControl('E-mail').value
     ''
-    >>> self.browser.getControl('Home page').value
+    >>> browser.getControl('Home page').value
     ''
-    >>> self.browser.getControl('Biography').value
+    >>> browser.getControl('Biography').value
     ''
-    >>> self.browser.getControl(name='form.widgets.portrait').value
+    >>> browser.getControl(name='form.widgets.portrait').value
 
 The form should be using CSRF protection:
 
-    >>> self.browser.getControl(name='_authenticator', index=0)
+    >>> browser.getControl(name='_authenticator', index=0)
     <Control name='_authenticator' type='hidden'>
 
 
@@ -52,13 +72,13 @@ Trying to save without changes
 
 Now can we save this form without changes?
 
-    >>> self.browser.getControl('Save').click()
-    >>> 'Login Name' in self.browser.contents
+    >>> browser.getControl('Save').click()
+    >>> 'Login Name' in browser.contents
     False
-    >>> self.browser.url.endswith(view_name)
+    >>> browser.url.endswith(view_name)
     True
-    >>> self.browser.getControl('Save').click()
-    >>> 'Required input is missing.' in self.browser.contents
+    >>> browser.getControl('Save').click()
+    >>> 'Required input is missing.' in browser.contents
     True
 
 As we have a required field "email", which hasn't been pre-filled in this test,
@@ -72,30 +92,30 @@ Modifying user data
 If we do set an e-mail address, we should be able to save the form.
 
     >>> full_name = 'Plone user'
-    >>> self.browser.getControl('Full Name').value = full_name
+    >>> browser.getControl('Full Name').value = full_name
 
     >>> home_page = 'http://www.plone.org/'
-    >>> self.browser.getControl('Home page').value = home_page
+    >>> browser.getControl('Home page').value = home_page
 
     >>> description = 'Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.'
-    >>> self.browser.getControl('Biography').value = description
+    >>> browser.getControl('Biography').value = description
 
     >>> email_address = 'person@example.com'
-    >>> self.browser.getControl('E-mail').value = email_address
+    >>> browser.getControl('E-mail').value = email_address
 
     >>> location = 'Somewhere'
-    >>> self.browser.getControl('Location').value = location
+    >>> browser.getControl('Location').value = location
 
     >>> from pkg_resources import resource_stream
     >>> portrait_file = resource_stream("plone.app.users.tests", 'onepixel.jpg')
-    >>> self.browser.getControl(name='form.widgets.portrait').add_file(portrait_file, "image/jpg", "onepixel.jpg")
+    >>> browser.getControl(name='form.widgets.portrait').add_file(portrait_file, "image/jpg", "onepixel.jpg")
 
-    >>> self.browser.getControl('Save').click()
-    >>> 'Required input is missing.' in self.browser.contents
+    >>> browser.getControl('Save').click()
+    >>> 'Required input is missing.' in browser.contents
     False
-    >>> 'No changes made.' in self.browser.contents
+    >>> 'No changes made.' in browser.contents
     False
-    >>> 'Changes saved.' in self.browser.contents
+    >>> 'Changes saved.' in browser.contents
     True
 
 
@@ -103,7 +123,7 @@ If we do set an e-mail address, we should be able to save the form.
 We should be able to check that value for email address now is the same as what
 we put in.
 
-    >>> member = self.membership.getMemberById('test_user_1_')
+    >>> member = membership.getMemberById(TEST_USER_ID)
     >>> fullname_value = member.getProperty('fullname','')
     >>> fullname_value == full_name
     True
@@ -124,7 +144,7 @@ we put in.
     >>> location_value == location
     True
 
-    >>> portrait_value = self.membership.getPersonalPortrait('test_user_1_')
+    >>> portrait_value = membership.getPersonalPortrait(TEST_USER_ID)
     >>> portrait_value
     <Image at /plone/portal_memberdata/portraits/test_user_1_>
 
@@ -143,21 +163,21 @@ Clearing user data
 If we empty all non-required inputs, the corresponding fields should
 be cleared, instead of keeping their old value
 
-    >>> self.browser.getControl('Full Name').value = ''
-    >>> self.browser.getControl('Home page').value = ''
-    >>> self.browser.getControl('Biography').value = ''
-    >>> self.browser.getControl('Location').value = ''
-    >>> self.browser.getControl('Save').click()
-    >>> 'Required input is missing.' in self.browser.contents
+    >>> browser.getControl('Full Name').value = ''
+    >>> browser.getControl('Home page').value = ''
+    >>> browser.getControl('Biography').value = ''
+    >>> browser.getControl('Location').value = ''
+    >>> browser.getControl('Save').click()
+    >>> 'Required input is missing.' in browser.contents
     False
-    >>> 'No changes made.' in self.browser.contents
+    >>> 'No changes made.' in browser.contents
     False
-    >>> 'Changes saved.' in self.browser.contents
+    >>> 'Changes saved.' in browser.contents
     True
 
 Check the values
 
-    >>> member = self.membership.getMemberById('test_user_1_')
+    >>> member = membership.getMemberById(TEST_USER_ID)
     >>> marker = object()
     >>> member.getProperty('fullname', marker)
     ''
@@ -173,24 +193,24 @@ Check the values
 Set the full name again:
 
     >>> full_name = 'Plone user'
-    >>> self.browser.getControl('Full Name').value = full_name
-    >>> self.browser.getControl('Save').click()
-    >>> member = self.membership.getMemberById('test_user_1_')
+    >>> browser.getControl('Full Name').value = full_name
+    >>> browser.getControl('Save').click()
+    >>> member = membership.getMemberById(TEST_USER_ID)
     >>> member.getProperty('fullname', marker) == full_name
     True
 
 Can we delete the Image using the checkbox?
 
-    >>> self.browser.getControl('Remove existing image').selected = True
-    >>> self.browser.getControl('Save').click()
-    >>> 'Changes saved.' in self.browser.contents
+    >>> browser.getControl('Remove existing image').selected = True
+    >>> browser.getControl('Save').click()
+    >>> 'Changes saved.' in browser.contents
     True
 
 Does the user have the default portrait now?  Note that this differs
 slightly depending on which Plone version you have.  Products.PlonePAS
 4.0.5 or higher has .png, earlier has .gif.
 
-    >>> portrait_value = self.membership.getPersonalPortrait('test_user_1_')
+    >>> portrait_value = membership.getPersonalPortrait(TEST_USER_ID)
     >>> portrait_value
     <FSImage at /plone/defaultUser...>
 
@@ -200,8 +220,8 @@ Modifying other users's data
 When trying to access the personal-information of the admin user
 we still get our own data
 
-    >>> self.browser.open('http://nohost/plone/' + view_name + '?userid=admin')
-    >>> self.browser.getControl('Full Name').value == full_name
+    >>> browser.open('http://nohost/plone/' + view_name + '?userid=admin')
+    >>> browser.getControl('Full Name').value == full_name
     True
 
 
@@ -211,15 +231,16 @@ Modifying user data in email mode
 Let's switch to using Email as Login Name
 
     >>> portal.portal_properties.site_properties._updateProperty('use_email_as_login', True)
-    >>> self.browser.open("http://nohost/plone/" + view_name)
+    >>> transaction.commit()
+    >>> browser.open(view_url)
 
 Update our email and see if login name was synced:
 
-    >>> self.browser.getControl('E-mail').value = 'my.new.email@example.com'
-    >>> self.browser.getControl('Save').click()
-    >>> 'Changes saved.' in self.browser.contents
+    >>> browser.getControl('E-mail').value = 'my.new.email@example.com'
+    >>> browser.getControl('Save').click()
+    >>> 'Changes saved.' in browser.contents
     True
-    >>> member = self.membership.getMemberById('test_user_1_')
+    >>> member = membership.getMemberById(TEST_USER_ID)
     >>> member.getUserName()
     'my.new.email@example.com'
 
@@ -228,13 +249,10 @@ should fail with validation errors.
 
     >>> portal.acl_users._doAddUser('user2@example.com', 'password1', ('Member',), ())
     <PloneUser 'user2@example.com'>
+    >>> transaction.commit()
 
-    >>> self.browser.open("http://nohost/plone/" + view_name)
-    >>> self.browser.getControl('E-mail').value = 'user2@example.com'
-    >>> self.browser.getControl('Save').click()
-    >>> 'The email address you selected is already in use or is not valid as login name. Please choose another' in self.browser.contents
+    >>> browser.open(view_url)
+    >>> browser.getControl('E-mail').value = 'user2@example.com'
+    >>> browser.getControl('Save').click()
+    >>> 'The email address you selected is already in use or is not valid as login name. Please choose another' in browser.contents
     True
-
-Revert back from email mode
-
-    >>> portal.portal_properties.site_properties._updateProperty('use_email_as_login', False)


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/f4e99d0f2805d04a6ece4128b8585f453adec15b

Migrate userdata_prefs_user_details.rst

Files changed:
M plone/app/users/tests/userdata_prefs_user_details.rst

diff --git a/plone/app/users/tests/userdata_prefs_user_details.rst b/plone/app/users/tests/userdata_prefs_user_details.rst
index a375803..336e357 100644
--- a/plone/app/users/tests/userdata_prefs_user_details.rst
+++ b/plone/app/users/tests/userdata_prefs_user_details.rst
@@ -1,39 +1,56 @@
 Admin modifies user information thru 'Users and groups'
 ---------------------------------------------------------------------
 
+Set Up
+======
+
+    >>> from plone.app.testing import TEST_USER_ID
+    >>> from plone.testing.z2 import Browser
+
+    >>> import transaction
+
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+    >>> membership = portal.portal_membership
+
+    >>> user_information_url = 'http://nohost/plone/@@user-information?userid={0}'.format(TEST_USER_ID)
+
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
+
 An admin can modify user information thru the @@user-information form in Users and Groups
 config page.
 
 So let's login as Plone admin:
-    >>> self.browser.open('http://nohost/plone/')
-    >>> self.browser.getLink('Log in').click()
-    >>> self.browser.getControl('Login Name').value = 'admin'
-    >>> self.browser.getControl('Password').value = 'secret'
-    >>> self.browser.getControl('Log in').click()
+    >>> browser.open('http://nohost/plone/')
+    >>> browser.getLink('Log in').click()
+    >>> browser.getControl('Login Name').value = 'admin'
+    >>> browser.getControl('Password').value = 'secret'
+    >>> browser.getControl('Log in').click()
 
 Let's see if we can navigate to the user information form in Users and groups
-    >>> self.browser.getLink('Site Setup').click()
-    >>> self.browser.getLink('Users and Groups').click()
-    >>> self.browser.getLink('test_user_1_').click()
-    >>> self.browser.getLink('Personal Information').click()
-    >>> self.browser.url
-    'http://nohost/plone/@@user-information?userid=test_user_1_'
+    >>> browser.getLink('Site Setup').click()
+    >>> browser.getLink('Users and Groups').click()
+    >>> browser.getLink(TEST_USER_NAME).click()
+    >>> browser.getLink('Personal Information').click()
+    >>> browser.url == user_information_url
+    True
 
 We have these controls in the form:
 
-    >>> self.browser.getControl('Full Name').value
+    >>> browser.getControl('Full Name').value
     ''
-    >>> self.browser.getControl('E-mail').value
+    >>> browser.getControl('E-mail').value
     ''
-    >>> self.browser.getControl('Home page').value
+    >>> browser.getControl('Home page').value
     ''
-    >>> self.browser.getControl('Biography').value
+    >>> browser.getControl('Biography').value
     ''
-    >>> self.browser.getControl(name='form.widgets.portrait').value
+    >>> browser.getControl(name='form.widgets.portrait').value
 
 The form should be using CSRF protection:
 
-    >>> self.browser.getControl(name='_authenticator', index=0)
+    >>> browser.getControl(name='_authenticator', index=0)
     <Control name='_authenticator' type='hidden'>
 
 
@@ -41,36 +58,36 @@ Modifying user data
 -------------------
 
     >>> full_name = 'Plone user'
-    >>> self.browser.getControl('Full Name').value = full_name
+    >>> browser.getControl('Full Name').value = full_name
 
     >>> home_page = 'http://www.plone.org/'
-    >>> self.browser.getControl('Home page').value = home_page
+    >>> browser.getControl('Home page').value = home_page
 
     >>> description = 'Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.'
-    >>> self.browser.getControl('Biography').value = description
+    >>> browser.getControl('Biography').value = description
 
     >>> email_address = 'person@example.com'
-    >>> self.browser.getControl('E-mail').value = email_address
+    >>> browser.getControl('E-mail').value = email_address
 
     >>> location = 'Somewhere'
-    >>> self.browser.getControl('Location').value = location
+    >>> browser.getControl('Location').value = location
 
     >>> from pkg_resources import resource_stream
     >>> portrait_file = resource_stream("plone.app.users.tests", 'onepixel.jpg')
-    >>> self.browser.getControl(name='form.widgets.portrait').add_file(portrait_file, "image/jpg", "onepixel.jpg")
+    >>> browser.getControl(name='form.widgets.portrait').add_file(portrait_file, "image/jpg", "onepixel.jpg")
 
-    >>> self.browser.getControl('Save').click()
-    >>> 'Required input is missing.' in self.browser.contents
+    >>> browser.getControl('Save').click()
+    >>> 'Required input is missing.' in browser.contents
     False
-    >>> 'No changes made.' in self.browser.contents
+    >>> 'No changes made.' in browser.contents
     False
-    >>> 'Changes saved.' in self.browser.contents
+    >>> 'Changes saved.' in browser.contents
     True
 
 We should be able to check that value for email address now is the same as what
 we put in.
 
-    >>> member = self.membership.getMemberById('test_user_1_')
+    >>> member = membership.getMemberById(TEST_USER_ID)
     >>> fullname_value = member.getProperty('fullname','')
     >>> fullname_value == full_name
     True
@@ -93,7 +110,7 @@ we put in.
 
 Is the users's portrait a newly created Image?
 
-    >>> portrait_value = self.membership.getPersonalPortrait('test_user_1_')
+    >>> portrait_value = membership.getPersonalPortrait(TEST_USER_ID)
     >>> portrait_value
     <Image at /plone/portal_memberdata/portraits/test_user_1_>
 
@@ -107,24 +124,24 @@ Is the data of the created Image the same as the (scaled) orignal image?
 
 Can we delete the Image using the checkbox?
 
-    >>> self.browser.getControl('Remove existing image').selected = True
-    >>> self.browser.getControl('Save').click()
-    >>> 'Changes saved.' in self.browser.contents
+    >>> browser.getControl('Remove existing image').selected = True
+    >>> browser.getControl('Save').click()
+    >>> 'Changes saved.' in browser.contents
     True
 
 Does the user have the default portrait now?  Note that this differs
 slightly depending on which Plone version you have.  Products.PlonePAS
 4.0.5 or higher has .png, earlier has .gif.
 
-    >>> portrait_value = self.membership.getPersonalPortrait('test_user_1_')
+    >>> portrait_value = membership.getPersonalPortrait(TEST_USER_ID)
     >>> portrait_value
     <FSImage at /plone/defaultUser...>
 
 Finally let's see if Cancel button still leaves us on selected user Personal
 Information form::
 
-    >>> self.browser.getControl('Cancel').click()
-    >>> 'Changes canceled.' in self.browser.contents
+    >>> browser.getControl('Cancel').click()
+    >>> 'Changes canceled.' in browser.contents
     True
-    >>> 'Change personal information for test_user_1_' in self.browser.contents
+    >>> 'Change personal information for test_user_1_' in browser.contents
     True


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:30+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/761c69c65a46f6308dc2be2683016aeae7680703

Migrate personal_preferences.rst

Files changed:
M plone/app/users/tests/personal_preferences.rst

diff --git a/plone/app/users/tests/personal_preferences.rst b/plone/app/users/tests/personal_preferences.rst
index 8af1bed..db95b7b 100644
--- a/plone/app/users/tests/personal_preferences.rst
+++ b/plone/app/users/tests/personal_preferences.rst
@@ -1,6 +1,24 @@
 Testing the personal preferences form
 =====================================
 
+This is about the 'personal-preferences' view.
+
+Set up
+======
+
+    >>> from plone.app.testing import TEST_USER_NAME
+    >>> from plone.app.testing import TEST_USER_PASSWORD
+    >>> from plone.testing.z2 import Browser
+
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+    >>> membership = portal.portal_membership
+
+    >>> view_name = '@@personal-preferences'
+
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
+
     >>> empty_marker = '--NOVALUE--'
     >>> def isEmptyMarker(v):
     ...     if len(v) != 1: return False
@@ -9,71 +27,68 @@ Testing the personal preferences form
 Viewing the personal preferences
 --------------------------------
 
-This is about the 'personal-preferences' view.
-
-    >>> view_name = '@@personal-preferences'
-
 Viewing user data shouldn't be possible for anonymous users:
 
-    >>> self.browser.open("http://nohost/plone/" + view_name)
-    >>> 'Login Name' in self.browser.contents
-    True
+    >>> browser.open("http://nohost/plone/" + view_name)
+    Traceback (most recent call last):
+    ...
+    Unauthorized: ...You are not authorized to access this resource...
 
 So let's login as Plone user:
-    >>> self.browser.open('http://nohost/plone/')
-    >>> self.browser.getLink('Log in').click()
-    >>> self.browser.getControl('Login Name').value = 'test_user_1_'
-    >>> self.browser.getControl('Password').value = 'secret'
-    >>> self.browser.getControl('Log in').click()
+    >>> browser.open('http://nohost/plone/')
+    >>> browser.getLink('Log in').click()
+    >>> browser.getControl('Login Name').value = TEST_USER_NAME
+    >>> browser.getControl('Password').value = TEST_USER_PASSWORD
+    >>> browser.getControl('Log in').click()
 
 Now we should be able to access the user data panel:
 
-    >>> self.browser.open("http://nohost/plone/" + view_name)
-    >>> 'Login Name' in self.browser.contents
+    >>> browser.open("http://nohost/plone/" + view_name)
+    >>> 'Login Name' in browser.contents
     False
-    >>> self.browser.url.endswith(view_name)
+    >>> browser.url.endswith(view_name)
     True
 
 We have two controls, one for the start page and one for the language:
 
-    >>> isEmptyMarker(self.browser.getControl('Wysiwyg editor').value)
+    >>> isEmptyMarker(browser.getControl('Wysiwyg editor').value)
     True
-    >>> self.browser.getControl('Enable external editing').selected
+    >>> browser.getControl('Enable external editing').selected
     False
-    >>> isEmptyMarker(self.browser.getControl('Language', index=0).value)
+    >>> isEmptyMarker(browser.getControl('Language', index=0).value)
     True
 
 The form should be using CSRF protection:
 
-    >>> self.browser.getControl(name='_authenticator', index=0)
+    >>> browser.getControl(name='_authenticator', index=0)
     <Control name='_authenticator' type='hidden'>
 
 Now we click the cancel button:
 
-    >>> self.browser.getControl('Cancel').click()
-    >>> self.browser.url.endswith(view_name)
+    >>> browser.getControl('Cancel').click()
+    >>> browser.url.endswith(view_name)
     True
 
 There should be no changes at all:
 
-    >>> 'Changes canceled.' in self.browser.contents
+    >>> 'Changes canceled.' in browser.contents
     True
 
 Modifying values
 ----------------
 
-    >>> self.browser.open('http://nohost/plone/' + view_name)
-    >>> self.browser.getControl('Wysiwyg editor').value = ['TinyMCE']
-    >>> self.browser.getControl('Enable external editing').selected = True
-    >>> self.browser.getControl('Language', index=0).value = ['en']
-    >>> self.browser.getControl('Save').click()
-    >>> 'Changes saved' in self.browser.contents
+    >>> browser.open('http://nohost/plone/' + view_name)
+    >>> browser.getControl('Wysiwyg editor').value = ['TinyMCE']
+    >>> browser.getControl('Enable external editing').selected = True
+    >>> browser.getControl('Language', index=0).value = ['en']
+    >>> browser.getControl('Save').click()
+    >>> 'Changes saved' in browser.contents
     True
 
 Verify that the settings have actually been
 changed:
 
-    >>> member = self.membership.getMemberById('test_user_1_')
+    >>> member = membership.getMemberById('test_user_1_')
     >>> marker = object
     >>> member.getProperty('wysiwyg_editor', object)
     'TinyMCE'
@@ -84,13 +99,13 @@ changed:
 
 And that the form still has the according values:
 
-    >>> isEmptyMarker(self.browser.getControl('Wysiwyg editor').value)
+    >>> isEmptyMarker(browser.getControl('Wysiwyg editor').value)
     False
-    >>> self.browser.getControl('Wysiwyg editor').value
+    >>> browser.getControl('Wysiwyg editor').value
     ['TinyMCE']
-    >>> self.browser.getControl('Enable external editing').selected
+    >>> browser.getControl('Enable external editing').selected
     True
-    >>> self.browser.getControl('Language', index=0).value
+    >>> browser.getControl('Language', index=0).value
     ['en']
 
 
@@ -99,18 +114,18 @@ Clearing values
 
 Making an input empty should result in a stored empty string.
 
-    >>> self.browser.open('http://nohost/plone/' + view_name)
-    >>> self.browser.getControl('Wysiwyg editor').value = [empty_marker]
-    >>> self.browser.getControl('Enable external editing').selected = False
-    >>> self.browser.getControl('Language', index=0).value = [empty_marker]
-    >>> self.browser.getControl('Save').click()
-    >>> 'Changes saved' in self.browser.contents
+    >>> browser.open('http://nohost/plone/' + view_name)
+    >>> browser.getControl('Wysiwyg editor').value = [empty_marker]
+    >>> browser.getControl('Enable external editing').selected = False
+    >>> browser.getControl('Language', index=0).value = [empty_marker]
+    >>> browser.getControl('Save').click()
+    >>> 'Changes saved' in browser.contents
     True
 
 Verify that the settings have actually been
 changed:
 
-    >>> member = self.membership.getMemberById('test_user_1_')
+    >>> member = membership.getMemberById('test_user_1_')
     >>> marker = object
     >>> member.getProperty('wysiwyg_editor', object)
     ''
@@ -121,9 +136,9 @@ changed:
 
 And that the form still has the according values:
 
-    >>> isEmptyMarker(self.browser.getControl('Wysiwyg editor').value)
+    >>> isEmptyMarker(browser.getControl('Wysiwyg editor').value)
     True
-    >>> self.browser.getControl('Enable external editing').selected
+    >>> browser.getControl('Enable external editing').selected
     False
-    >>> isEmptyMarker(self.browser.getControl('Language', index=0).value)
+    >>> isEmptyMarker(browser.getControl('Language', index=0).value)
     True


Repository: plone.app.users
Branch: refs/heads/master
Date: 2014-10-13T21:09:31+02:00
Author: Gil Forcada (gforcada) <gil.forcada@freitag.de>
Commit: https://github.com/plone/plone.app.users/commit/b316715c6cb7c8b98f57a75ca203713a261748c9

TMP

Files changed:
M plone/app/users/testing.py
M plone/app/users/tests/forms_navigationroot.rst
M plone/app/users/tests/password.rst

diff --git a/plone/app/users/testing.py b/plone/app/users/testing.py
index f092566..5641e27 100644
--- a/plone/app/users/testing.py
+++ b/plone/app/users/testing.py
@@ -29,6 +29,25 @@ def setUpPloneSite(self, portal):
         site_manager.unregisterUtility(provided=IMailHost)
         site_manager.registerUtility(mail_host, IMailHost)
 
+    def addParrotPasswordPolicy(self):
+        a = 2
+        """# remove default policy
+        uf = self.portal.acl_users
+        for policy in uf.objectIds(['Default Plone Password Policy']):
+            uf.plugins.deactivatePlugin(IValidationPlugin, policy)
+
+        obj = DeadParrotPassword('test')
+        uf._setObject(obj.getId(), obj)
+        obj = uf[obj.getId()]
+        activatePluginInterfaces(self.portal, obj.getId())
+
+        portal = getUtility(ISiteRoot)
+        pas_instance = portal.acl_users
+        plugins = pas_instance._getOb('plugins')
+        validators = plugins.listPlugins(IValidationPlugin)
+        assert validators"""
+
+
 
 PLONE_APP_USERS_FIXTURE = PloneAppUsersLayer()
 PLONE_APP_USERS_INTEGRATION_TESTING = IntegrationTesting(
diff --git a/plone/app/users/tests/forms_navigationroot.rst b/plone/app/users/tests/forms_navigationroot.rst
index a3dacb7..40871ac 100644
--- a/plone/app/users/tests/forms_navigationroot.rst
+++ b/plone/app/users/tests/forms_navigationroot.rst
@@ -1,44 +1,61 @@
+==================================================
 Test form links against different navigation roots
---------------------------------------------------
+==================================================
 
 Links that are present within each of the forms should adhere to
 the current navigation root for the site.
 
+Set up
+======
+
     >>> from Products.Five.utilities.marker import mark
     >>> from plone.app.layout.navigation.interfaces import INavigationRoot
+    >>> from plone.app.testing import SITE_OWNER_NAME
+    >>> from plone.app.testing import SITE_OWNER_PASSWORD
+    >>> from plone.testing.z2 import Browser
+
+    >>> app = layer['app']
+    >>> portal = layer['portal']
+
+    >>> browser = Browser(app)
+    >>> browser.handleErrors = False
+
+Create a folder
+---------------
 
 We'll create the test context and have the relevant navigation root marker
 interface ready to be applied:
 
-    >>> self.loginAsPortalOwner()
-    >>> self.portal.invokeFactory('Folder', id='folder_navroot', title="Navroot")
-    'folder_navroot'
+    >>> browser.open('http://nohost/plone/login_form')
+    >>> browser.getControl('Login Name').value = SITE_OWNER_NAME
+    >>> browser.getControl('Password').value = SITE_OWNER_PASSWORD
+    >>> browser.getControl('Log in').click()
 
 
-So let's login as Plone admin:
-    >>> self.browser.open('http://nohost/plone/')
-    >>> self.browser.getLink('Log in').click()
-    >>> self.browser.getControl('Login Name').value = 'admin'
-    >>> self.browser.getControl('Password').value = 'secret'
-    >>> self.browser.getControl('Log in').click()
+XXX: needs to be able to create a folder or something folderish
+
+
+    >>> portal.invokeFactory('Folder', id='folder_navroot', title="Navroot")
+    'folder_navroot'
+
 
 Let's see if we can navigate to the user information and options forms
 in the 'Users and Groups' settings. Each of the 3 forms all use the
 same base class so if the fix works on one, it works on them all.
 
-    >>> self.browser.getLink('Navroot').click()
+    >>> browser.getLink('Navroot').click()
 
-    >>> self.browser.getLink('Preferences').click()
-    >>> self.browser.url
+    >>> browser.getLink('Preferences').click()
+    >>> browser.url
     'http://nohost/plone/@@personal-preferences'
 
 Check the existance and links for a standard site context (navigation root
 is the Plone site itself since the marker interface isn't applied here
 yet).
 
-    >>> self.browser.getLink('Personal Information').url
+    >>> browser.getLink('Personal Information').url
     'http://nohost/plone/@@personal-information'
-    >>> self.browser.getLink('Personal Preferences').url
+    >>> browser.getLink('Personal Preferences').url
     'http://nohost/plone/@@personal-preferences'
 
 Now, let's mark this folder and see what happens.  All links should
@@ -46,15 +63,15 @@ now be rooted to the given folder and not the Plone site proper.
 
     >>> mark(self.portal.folder_navroot, INavigationRoot)
 
-    >>> self.browser.getLink('Navroot').click()
+    >>> browser.getLink('Navroot').click()
 
-    >>> self.browser.getLink('Preferences').click()
-    >>> self.browser.url
+    >>> browser.getLink('Preferences').click()
+    >>> browser.url
     'http://nohost/plone/folder_navroot/@@personal-preferences'
 
-    >>> self.browser.getLink('Personal Information').url
+    >>> browser.getLink('Personal Information').url
     'http://nohost/plone/folder_navroot/@@personal-information'
-    >>> self.browser.getLink('Personal Preferences').url
+    >>> browser.getLink('Personal Preferences').url
     'http://nohost/plone/folder_navroot/@@personal-preferences'
 
 
diff --git a/plone/app/users/tests/password.rst b/plone/app/users/tests/password.rst
index 109cd7f..228c673 100644
--- a/plone/app/users/tests/password.rst
+++ b/plone/app/users/tests/password.rst
@@ -4,54 +4,70 @@ Testing the password form
 This is about the 'change_password' form. This test will try to login as a Plone
 user, change the password, logout and login with the new password.
 
+Set up
+======
+
+    >>> from plone.app.testing import TEST_USER_NAME
+    >>> from plone.app.testing import TEST_USER_PASSWORD
+    >>> from plone.te…
bloodbare added a commit that referenced this pull request Mar 25, 2015
Branch: refs/heads/master
Date: 2015-03-02T14:38:29+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@f48ab56

Removing Portal Language Tool

Files changed:
M plone/app/upgrade/__init__.py
M plone/app/upgrade/bbb.py
M plone/app/upgrade/v50/betas.py
M setup.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-16T10:52:12+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@d09f4bc

Comment to remove the portal skin

Files changed:
M plone/app/upgrade/v50/betas.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-16T13:18:26+01:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.app.upgrade@391decd

Merge branch 'master' into plip13091

Files changed:
M CHANGES.rst
M plone/app/upgrade/tests/base.py
M plone/app/upgrade/v30/tests.py
M plone/app/upgrade/v43/tests.py
M setup.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-19T17:23:02+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@fedc564

Wrong alias

Files changed:
M plone/app/upgrade/__init__.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-19T19:45:23+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@e3443f1

Upgrade tricky for languages

Files changed:
A plone/app/upgrade/bbbd/LanguageTool.py
A plone/app/upgrade/bbbd/__init__.py
M plone/app/upgrade/__init__.py
M plone/app/upgrade/bbb.py
M plone/app/upgrade/v50/betas.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-23T14:43:45+01:00
Author: Gil Forcada (gforcada) <gforcada@gnome.org>
Commit: plone/plone.app.upgrade@ac85dd4

Typo

Files changed:
M plone/app/upgrade/v50/alphas.py
M plone/app/upgrade/v50/betas.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-23T15:51:10+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@ed5c730

Registry elements, language remove step and skins from Language Tools to be removed

Files changed:
A plone/app/upgrade/v50/profiles/to_beta1/skins.xml
M plone/app/upgrade/v50/betas.py
M plone/app/upgrade/v50/configure.zcml
M plone/app/upgrade/v50/profiles/to_beta1/registry.xml
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-25T21:35:52+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@3e116c8

Merge pull request #29 from plone/plip13091

Plip13091

Files changed:
A plone/app/upgrade/bbbd/LanguageTool.py
A plone/app/upgrade/bbbd/__init__.py
A plone/app/upgrade/v50/profiles/to_beta1/skins.xml
M plone/app/upgrade/__init__.py
M plone/app/upgrade/bbb.py
M plone/app/upgrade/v50/betas.py
M plone/app/upgrade/v50/configure.zcml
M plone/app/upgrade/v50/profiles/to_beta1/registry.xml
M setup.py
bloodbare added a commit that referenced this pull request Mar 25, 2015
Branch: refs/heads/master
Date: 2015-03-02T14:38:29+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@f48ab56

Removing Portal Language Tool

Files changed:
M plone/app/upgrade/__init__.py
M plone/app/upgrade/bbb.py
M plone/app/upgrade/v50/betas.py
M setup.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-16T10:52:12+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@d09f4bc

Comment to remove the portal skin

Files changed:
M plone/app/upgrade/v50/betas.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-16T13:18:26+01:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.app.upgrade@391decd

Merge branch 'master' into plip13091

Files changed:
M CHANGES.rst
M plone/app/upgrade/tests/base.py
M plone/app/upgrade/v30/tests.py
M plone/app/upgrade/v43/tests.py
M setup.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-19T17:23:02+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@fedc564

Wrong alias

Files changed:
M plone/app/upgrade/__init__.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-19T19:45:23+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@e3443f1

Upgrade tricky for languages

Files changed:
A plone/app/upgrade/bbbd/LanguageTool.py
A plone/app/upgrade/bbbd/__init__.py
M plone/app/upgrade/__init__.py
M plone/app/upgrade/bbb.py
M plone/app/upgrade/v50/betas.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-23T14:43:45+01:00
Author: Gil Forcada (gforcada) <gforcada@gnome.org>
Commit: plone/plone.app.upgrade@ac85dd4

Typo

Files changed:
M plone/app/upgrade/v50/alphas.py
M plone/app/upgrade/v50/betas.py
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-23T15:51:10+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@ed5c730

Registry elements, language remove step and skins from Language Tools to be removed

Files changed:
A plone/app/upgrade/v50/profiles/to_beta1/skins.xml
M plone/app/upgrade/v50/betas.py
M plone/app/upgrade/v50/configure.zcml
M plone/app/upgrade/v50/profiles/to_beta1/registry.xml
Repository: plone.app.upgrade
Branch: refs/heads/master
Date: 2015-03-25T21:35:52+01:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.upgrade@3e116c8

Merge pull request #29 from plone/plip13091

Plip13091

Files changed:
A plone/app/upgrade/bbbd/LanguageTool.py
A plone/app/upgrade/bbbd/__init__.py
A plone/app/upgrade/v50/profiles/to_beta1/skins.xml
M plone/app/upgrade/__init__.py
M plone/app/upgrade/bbb.py
M plone/app/upgrade/v50/betas.py
M plone/app/upgrade/v50/configure.zcml
M plone/app/upgrade/v50/profiles/to_beta1/registry.xml
M setup.py
vangheem added a commit that referenced this pull request May 19, 2015
Branch: refs/heads/master
Date: 2015-05-18T16:11:52+03:00
Author: Asko Soukka (datakurre) <asko.soukka@iki.fi>
Commit: plone/plone.dexterity@9a16c50

Fix to pass resource name from webdav PUT to createObject

Files changed:
M CHANGES.rst
M plone/dexterity/filerepresentation.py
M plone/dexterity/tests/test_webdav.py
Repository: plone.dexterity
Branch: refs/heads/master
Date: 2015-05-18T20:30:06-05:00
Author: Nathan Van Gheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.dexterity@15526f7

Merge pull request #29 from plone/datakurre-fix-webdav-item-id

Fix to pass resource name from webdav PUT to createObject

Files changed:
M CHANGES.rst
M plone/dexterity/filerepresentation.py
M plone/dexterity/tests/test_webdav.py
vangheem added a commit that referenced this pull request May 19, 2015
Branch: refs/heads/master
Date: 2015-05-18T16:11:52+03:00
Author: Asko Soukka (datakurre) <asko.soukka@iki.fi>
Commit: plone/plone.dexterity@9a16c50

Fix to pass resource name from webdav PUT to createObject

Files changed:
M CHANGES.rst
M plone/dexterity/filerepresentation.py
M plone/dexterity/tests/test_webdav.py
Repository: plone.dexterity
Branch: refs/heads/master
Date: 2015-05-18T20:30:06-05:00
Author: Nathan Van Gheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.dexterity@15526f7

Merge pull request #29 from plone/datakurre-fix-webdav-item-id

Fix to pass resource name from webdav PUT to createObject

Files changed:
M CHANGES.rst
M plone/dexterity/filerepresentation.py
M plone/dexterity/tests/test_webdav.py
bloodbare added a commit that referenced this pull request Jul 16, 2015
Branch: refs/heads/master
Date: 2015-07-16T18:20:15+02:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plonetheme.barceloneta@7641186

Toolbar width as a less variable, and containers also, defining the size of the container based on the toolbar

Files changed:
M plonetheme/barceloneta/theme/less/main.plone.less
M plonetheme/barceloneta/theme/less/variables.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:15+02:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plonetheme.barceloneta@89b202b

Missed non toolbar container

Files changed:
M plonetheme/barceloneta/theme/less/main.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Peter Holzer (agitator) <hpeter@agitator.com>
Commit: plone/plonetheme.barceloneta@c83ddaa

closes plone/Products.CMFPlone#616 and various other mobile issues

Files changed:
M CHANGES.rst
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css.map
M plonetheme/barceloneta/theme/less/breadcrumbs.plone.less
M plonetheme/barceloneta/theme/less/header.plone.less
M plonetheme/barceloneta/theme/less/loginform.plone.less
M plonetheme/barceloneta/theme/less/sitenav.plone.less
M plonetheme/barceloneta/theme/less/variables.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Victor Fernandez de Alba (sneridagh) <sneridagh@gmail.com>
Commit: plone/plonetheme.barceloneta@3f7efc2

First working version of new control panel overview and portlet layout

Files changed:
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css.map
M plonetheme/barceloneta/theme/less/portlets.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Victor Fernandez de Alba (sneridagh) <sneridagh@gmail.com>
Commit: plone/plonetheme.barceloneta@2b981dd

Fixed bug in portlet navigation due to a CSS error

Files changed:
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css.map
M plonetheme/barceloneta/theme/less/portlets.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Victor Fernandez de Alba (sneridagh) <sneridagh@gmail.com>
Commit: plone/plonetheme.barceloneta@bdf10af

Fix problem with CSS leaking from the cp overview to the portlet

Files changed:
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css.map
M plonetheme/barceloneta/theme/less/portlets.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Victor Fernandez de Alba (sneridagh) <sneridagh@gmail.com>
Commit: plone/plonetheme.barceloneta@de3f327

Fix map

Files changed:
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css.map
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plonetheme.barceloneta@c891520

Header mobile Close plone/Products.CMFPlone#616

Files changed:
M plonetheme/barceloneta/theme/less/header.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plonetheme.barceloneta@eddd29b

Floating right the identity

Files changed:
M plonetheme/barceloneta/theme/less/header.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Peter Holzer (agitator) <hpeter@agitator.com>
Commit: plone/plonetheme.barceloneta@c032362

added controlpanels.plone.less

Files changed:
A plonetheme/barceloneta/theme/less/controlpanels.plone.less
M plonetheme/barceloneta/theme/less/barceloneta.plone.less
M plonetheme/barceloneta/theme/less/portlets.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:49+02:00
Author: Peter Holzer (agitator) <hpeter@agitator.com>
Commit: plone/plonetheme.barceloneta@b2f9120

more contrast for table rows

Files changed:
M plonetheme/barceloneta/theme/less/variables.plone.less
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:50+02:00
Author: Peter Holzer (agitator) <hpeter@agitator.com>
Commit: plone/plonetheme.barceloneta@bc136db

updated compiled

Files changed:
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css.map
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:20:50+02:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plonetheme.barceloneta@174c2ad

role for gigantic is complementary

Files changed:
M plonetheme/barceloneta/theme/index.html
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-07-16T18:32:34+02:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plonetheme.barceloneta@1025054

Merge pull request #29 from plone/toolbar-fixup

Toolbar fixup

Files changed:
A plonetheme/barceloneta/theme/less/controlpanels.plone.less
M CHANGES.rst
M plonetheme/barceloneta/theme/index.html
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css
M plonetheme/barceloneta/theme/less/barceloneta-compiled.css.map
M plonetheme/barceloneta/theme/less/barceloneta.plone.less
M plonetheme/barceloneta/theme/less/breadcrumbs.plone.less
M plonetheme/barceloneta/theme/less/header.plone.less
M plonetheme/barceloneta/theme/less/loginform.plone.less
M plonetheme/barceloneta/theme/less/main.plone.less
M plonetheme/barceloneta/theme/less/portlets.plone.less
M plonetheme/barceloneta/theme/less/sitenav.plone.less
M plonetheme/barceloneta/theme/less/variables.plone.less
pbauer added a commit that referenced this pull request Sep 29, 2015
Branch: refs/heads/master
Date: 2015-09-28T16:49:48+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/archetypes.referencebrowserwidget@edf74dd

Show elements that the reader has no access to as "Undisclosed"

Files changed:
M CHANGES.rst
M src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt
Repository: archetypes.referencebrowserwidget
Branch: refs/heads/master
Date: 2015-09-29T17:11:35+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/archetypes.referencebrowserwidget@50a53ce

Merge pull request #29 from plone/prevent_unauthozired

Show elements that the reader has no access to as "Undisclosed"

Files changed:
M CHANGES.rst
M src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt
pbauer added a commit that referenced this pull request Sep 29, 2015
Branch: refs/heads/master
Date: 2015-09-28T16:49:48+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/archetypes.referencebrowserwidget@edf74dd

Show elements that the reader has no access to as "Undisclosed"

Files changed:
M CHANGES.rst
M src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt
Repository: archetypes.referencebrowserwidget
Branch: refs/heads/master
Date: 2015-09-29T17:11:35+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/archetypes.referencebrowserwidget@50a53ce

Merge pull request #29 from plone/prevent_unauthozired

Show elements that the reader has no access to as "Undisclosed"

Files changed:
M CHANGES.rst
M src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt
vangheem added a commit that referenced this pull request Oct 22, 2015
Branch: refs/heads/master
Date: 2015-10-22T17:04:54+02:00
Author: Gagaro (Gagaro) <gagaro42@gmail.com>
Commit: plone/plone.app.z3cform@b7a71e4

fix: Check if user can add keywords for AjaxSelectWidget

Files changed:
M CHANGES.rst
M plone/app/z3cform/widget.py
Repository: plone.app.z3cform
Branch: refs/heads/master
Date: 2015-10-22T11:45:07-05:00
Author: Nathan Van Gheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.app.z3cform@f4942ab

Merge pull request #29 from plone/fix-check-add-keywords

fix: Check if user can add keywords for AjaxSelectWidget

Files changed:
M CHANGES.rst
M plone/app/z3cform/widget.py
vangheem added a commit that referenced this pull request Oct 23, 2015
Branch: refs/heads/master
Date: 2015-10-23T12:29:02+02:00
Author: Gagaro (Gagaro) <gagaro42@gmail.com>
Commit: plone/plone.app.z3cform@51a504f

tests: #29 Check if user can add keywords for AjaxSelectWidget

Files changed:
M plone/app/z3cform/tests/test_widgets.py
Repository: plone.app.z3cform
Branch: refs/heads/master
Date: 2015-10-23T08:13:38-05:00
Author: Nathan Van Gheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.app.z3cform@ba62ae0

Merge pull request #30 from plone/tests-29

tests: #29 Check if user can add keywords for AjaxSelectWidget

Files changed:
M plone/app/z3cform/tests/test_widgets.py
mister-roboto pushed a commit that referenced this pull request Feb 23, 2016
Branch: refs/heads/2.1.x
Date: 2016-01-04T06:58:36+01:00
Author: Gil Forcada (gforcada) <gforcada@gnome.org>
Commit: plone/Products.ATContentTypes@e7d9ee4

Backport CSRF fix from @vangheem

Original commit: plone/Products.ATContentTypes@2958b34

Files changed:
M CHANGES.rst
M Products/ATContentTypes/tests/atctftestcase.py
M Products/ATContentTypes/tests/editing.txt
M Products/ATContentTypes/tests/portaltype_criterion.txt
M Products/ATContentTypes/tests/test_atdocument.py
M Products/ATContentTypes/tests/test_atfolder.py
M Products/ATContentTypes/tests/uploading.txt
Repository: Products.ATContentTypes
Branch: refs/heads/2.1.x
Date: 2016-01-04T07:35:57+01:00
Author: vangheem (vangheem) <vangheem@gmail.com>
Commit: plone/Products.ATContentTypes@2f932af

fix tests relating to edit urls

Files changed:
M Products/ATContentTypes/tests/portaltype_criterion.txt
M Products/ATContentTypes/tests/uploading.txt
Repository: Products.ATContentTypes
Branch: refs/heads/2.1.x
Date: 2016-02-13T01:00:18+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/Products.ATContentTypes@bcf8874

In tests do not explicitly test if authenticator is in the url.

This keeps it compatible with plone.protect 2.x.

Files changed:
M Products/ATContentTypes/tests/portaltype_criterion.txt
M Products/ATContentTypes/tests/uploading.txt
Repository: Products.ATContentTypes
Branch: refs/heads/2.1.x
Date: 2016-02-23T13:38:13-05:00
Author: Eric Steele (esteele) <eric@esteele.net>
Commit: plone/Products.ATContentTypes@f46b273

Merge pull request #29 from plone/write-on-read2

Backport CSRF fix from @vangheem

Files changed:
M CHANGES.rst
M Products/ATContentTypes/tests/atctftestcase.py
M Products/ATContentTypes/tests/editing.txt
M Products/ATContentTypes/tests/portaltype_criterion.txt
M Products/ATContentTypes/tests/test_atdocument.py
M Products/ATContentTypes/tests/test_atfolder.py
M Products/ATContentTypes/tests/uploading.txt
mister-roboto pushed a commit that referenced this pull request Jun 14, 2016
Branch: refs/heads/master
Date: 2016-06-13T23:10:10+02:00
Author: Gil Forcada (gforcada) <gforcada@gnome.org>
Commit: plone/plone.namedfile@b3bfd18

Minor round of cleanups

Files changed:
M CHANGES.rst
M plone/namedfile/__init__.py
M plone/namedfile/copy.py
M plone/namedfile/handler.py
M plone/namedfile/scaling.py
M plone/namedfile/testing.py
M plone/namedfile/tests/test_blobfile.py
M plone/namedfile/tests/test_doctests.py
M plone/namedfile/tests/test_image.py
M plone/namedfile/tests/test_scaling.py
M plone/namedfile/tests/test_scaling_functional.py
Repository: plone.namedfile
Branch: refs/heads/master
Date: 2016-06-14T09:33:34+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.namedfile@d07ec4e

Merge pull request #29 from plone/gforcada-code-analysis

Minor round of cleanups

Files changed:
M CHANGES.rst
M plone/namedfile/__init__.py
M plone/namedfile/copy.py
M plone/namedfile/handler.py
M plone/namedfile/scaling.py
M plone/namedfile/testing.py
M plone/namedfile/tests/test_blobfile.py
M plone/namedfile/tests/test_doctests.py
M plone/namedfile/tests/test_image.py
M plone/namedfile/tests/test_scaling.py
M plone/namedfile/tests/test_scaling_functional.py
mister-roboto pushed a commit that referenced this pull request Jul 9, 2016
Branch: refs/heads/master
Date: 2016-07-05T23:12:29+02:00
Author: Gil Forcada (gforcada) <gforcada@gnome.org>
Commit: plone/plone.app.iterate@72ce424

Use zope.interface decorator

This not only makes code more pleasent to read,
but also makes the code python 3 compatible
(while maintaining python 2 compatibility).

Files changed:
M CHANGES.rst
M plone/app/iterate/archiver.py
M plone/app/iterate/browser/info.py
M plone/app/iterate/containers.py
M plone/app/iterate/copier.py
M plone/app/iterate/dexterity/copier.py
M plone/app/iterate/dexterity/policy.py
M plone/app/iterate/dexterity/relation.py
M plone/app/iterate/event.py
M plone/app/iterate/policy.py
M plone/app/iterate/relation.py
Repository: plone.app.iterate
Branch: refs/heads/master
Date: 2016-07-09T08:50:42+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.app.iterate@454d835

Merge pull request #29 from plone/gforcada-use-zope-decorators

Use zope.interface decorator

Files changed:
M CHANGES.rst
M plone/app/iterate/archiver.py
M plone/app/iterate/browser/info.py
M plone/app/iterate/containers.py
M plone/app/iterate/copier.py
M plone/app/iterate/dexterity/copier.py
M plone/app/iterate/dexterity/policy.py
M plone/app/iterate/dexterity/relation.py
M plone/app/iterate/event.py
M plone/app/iterate/policy.py
M plone/app/iterate/relation.py
mister-roboto pushed a commit that referenced this pull request Jul 9, 2016
Branch: refs/heads/master
Date: 2016-07-05T23:12:29+02:00
Author: Gil Forcada (gforcada) <gforcada@gnome.org>
Commit: plone/plone.app.iterate@72ce424

Use zope.interface decorator

This not only makes code more pleasent to read,
but also makes the code python 3 compatible
(while maintaining python 2 compatibility).

Files changed:
M CHANGES.rst
M plone/app/iterate/archiver.py
M plone/app/iterate/browser/info.py
M plone/app/iterate/containers.py
M plone/app/iterate/copier.py
M plone/app/iterate/dexterity/copier.py
M plone/app/iterate/dexterity/policy.py
M plone/app/iterate/dexterity/relation.py
M plone/app/iterate/event.py
M plone/app/iterate/policy.py
M plone/app/iterate/relation.py
Repository: plone.app.iterate
Branch: refs/heads/master
Date: 2016-07-09T08:50:42+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.app.iterate@454d835

Merge pull request #29 from plone/gforcada-use-zope-decorators

Use zope.interface decorator

Files changed:
M CHANGES.rst
M plone/app/iterate/archiver.py
M plone/app/iterate/browser/info.py
M plone/app/iterate/containers.py
M plone/app/iterate/copier.py
M plone/app/iterate/dexterity/copier.py
M plone/app/iterate/dexterity/policy.py
M plone/app/iterate/dexterity/relation.py
M plone/app/iterate/event.py
M plone/app/iterate/policy.py
M plone/app/iterate/relation.py
mister-roboto pushed a commit that referenced this pull request Sep 13, 2016
Branch: refs/heads/master
Date: 2016-09-12T17:44:08+02:00
Author: Alessandro Pisa (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.versioningbehavior@b2ade3f

Respect 80 chars

Files changed:
M plone/app/versioningbehavior/tests/test_modifiers.py
Repository: plone.app.versioningbehavior
Branch: refs/heads/master
Date: 2016-09-12T18:10:38+02:00
Author: Alessandro Pisa (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.versioningbehavior@705c074

Do not break in case of at -&gt; dx migration

Files changed:
M CHANGES.rst
M plone/app/versioningbehavior/modifiers.py
M plone/app/versioningbehavior/tests/test_modifiers.py
Repository: plone.app.versioningbehavior
Branch: refs/heads/master
Date: 2016-09-13T10:09:48+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.versioningbehavior@acab904

Merge pull request #29 from plone/fix-ats-migrated-to-dxs

Fix ats migrated to dxs

Files changed:
M CHANGES.rst
M plone/app/versioningbehavior/modifiers.py
M plone/app/versioningbehavior/tests/test_modifiers.py
mister-roboto pushed a commit that referenced this pull request Sep 13, 2016
Branch: refs/heads/master
Date: 2016-09-12T17:44:08+02:00
Author: Alessandro Pisa (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.versioningbehavior@b2ade3f

Respect 80 chars

Files changed:
M plone/app/versioningbehavior/tests/test_modifiers.py
Repository: plone.app.versioningbehavior
Branch: refs/heads/master
Date: 2016-09-12T18:10:38+02:00
Author: Alessandro Pisa (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.versioningbehavior@705c074

Do not break in case of at -&gt; dx migration

Files changed:
M CHANGES.rst
M plone/app/versioningbehavior/modifiers.py
M plone/app/versioningbehavior/tests/test_modifiers.py
Repository: plone.app.versioningbehavior
Branch: refs/heads/master
Date: 2016-09-13T10:09:48+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.versioningbehavior@acab904

Merge pull request #29 from plone/fix-ats-migrated-to-dxs

Fix ats migrated to dxs

Files changed:
M CHANGES.rst
M plone/app/versioningbehavior/modifiers.py
M plone/app/versioningbehavior/tests/test_modifiers.py
mister-roboto pushed a commit that referenced this pull request Sep 21, 2016
Branch: refs/heads/master
Date: 2016-09-07T01:21:27+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@8dbbe78

Added test that the upgrade step registry gets rolled back.

Files changed:
M plone/app/testing/helpers.rst
Repository: plone.app.testing
Branch: refs/heads/master
Date: 2016-09-07T01:21:27+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@63c5177

In PloneSandboxLayer make profile upgrade versions persistent.

This way installed profile versions get reset in teardown.

Initially I added push and pop support for the various GS registries,
but somehow that is handled fine already.

Files changed:
M CHANGES.rst
M plone/app/testing/helpers.py
M plone/app/testing/helpers.rst
Repository: plone.app.testing
Branch: refs/heads/master
Date: 2016-09-07T01:21:28+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@773220f

Use get_installer instead of portal_quickinstaller when available.

This is needed for Plone 5.1 and higher, plip 1340:
plone/Products.CMFPlone#1340

Files changed:
A plone/app/testing/profile/metadata.xml
M CHANGES.rst
M plone/app/testing/helpers.py
M plone/app/testing/helpers.rst
Repository: plone.app.testing
Branch: refs/heads/master
Date: 2016-09-21T11:53:53+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@f424bbe

Merge pull request #29 from plone/get-rid-of-qi

Use get_installer and make profile upgrade versions persistent

Files changed:
A plone/app/testing/profile/metadata.xml
M CHANGES.rst
M plone/app/testing/helpers.py
M plone/app/testing/helpers.rst
mister-roboto pushed a commit that referenced this pull request Sep 21, 2016
Branch: refs/heads/master
Date: 2016-09-07T01:21:27+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@8dbbe78

Added test that the upgrade step registry gets rolled back.

Files changed:
M plone/app/testing/helpers.rst
Repository: plone.app.testing
Branch: refs/heads/master
Date: 2016-09-07T01:21:27+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@63c5177

In PloneSandboxLayer make profile upgrade versions persistent.

This way installed profile versions get reset in teardown.

Initially I added push and pop support for the various GS registries,
but somehow that is handled fine already.

Files changed:
M CHANGES.rst
M plone/app/testing/helpers.py
M plone/app/testing/helpers.rst
Repository: plone.app.testing
Branch: refs/heads/master
Date: 2016-09-07T01:21:28+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@773220f

Use get_installer instead of portal_quickinstaller when available.

This is needed for Plone 5.1 and higher, plip 1340:
plone/Products.CMFPlone#1340

Files changed:
A plone/app/testing/profile/metadata.xml
M CHANGES.rst
M plone/app/testing/helpers.py
M plone/app/testing/helpers.rst
Repository: plone.app.testing
Branch: refs/heads/master
Date: 2016-09-21T11:53:53+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.testing@f424bbe

Merge pull request #29 from plone/get-rid-of-qi

Use get_installer and make profile upgrade versions persistent

Files changed:
A plone/app/testing/profile/metadata.xml
M CHANGES.rst
M plone/app/testing/helpers.py
M plone/app/testing/helpers.rst
mister-roboto pushed a commit that referenced this pull request Sep 28, 2016
Branch: refs/heads/master
Date: 2016-09-27T15:15:31+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@79d9fe0

isort

Files changed:
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
M setup.cfg
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-27T15:16:09+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@c8a0caf

utf8 headers

Files changed:
M plone/__init__.py
M plone/app/__init__.py
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-27T15:17:15+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@bdde644

autopep8 -ir

Files changed:
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-27T16:24:47+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@7255035

manual cleanup

Files changed:
M CHANGES.rst
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M setup.py
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-28T08:17:19+02:00
Author: agitator (agitator) <hpeter@agitator.com>
Commit: plone/plone.app.caching@866bcf6

Merge pull request #29 from plone/cleanup

Cleanup

Files changed:
M CHANGES.rst
M plone/__init__.py
M plone/app/__init__.py
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
M setup.cfg
M setup.py
mister-roboto pushed a commit that referenced this pull request Sep 28, 2016
Branch: refs/heads/master
Date: 2016-09-27T15:15:31+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@79d9fe0

isort

Files changed:
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
M setup.cfg
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-27T15:16:09+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@c8a0caf

utf8 headers

Files changed:
M plone/__init__.py
M plone/app/__init__.py
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-27T15:17:15+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@bdde644

autopep8 -ir

Files changed:
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-27T16:24:47+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.caching@7255035

manual cleanup

Files changed:
M CHANGES.rst
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M setup.py
Repository: plone.app.caching
Branch: refs/heads/master
Date: 2016-09-28T08:17:19+02:00
Author: agitator (agitator) <hpeter@agitator.com>
Commit: plone/plone.app.caching@866bcf6

Merge pull request #29 from plone/cleanup

Cleanup

Files changed:
M CHANGES.rst
M plone/__init__.py
M plone/app/__init__.py
M plone/app/caching/browser/controlpanel.py
M plone/app/caching/browser/edit.py
M plone/app/caching/interfaces.py
M plone/app/caching/lastmodified.py
M plone/app/caching/lookup.py
M plone/app/caching/operations/default.py
M plone/app/caching/operations/etags.py
M plone/app/caching/operations/ramcache.py
M plone/app/caching/operations/utils.py
M plone/app/caching/purge.py
M plone/app/caching/setuphandlers.py
M plone/app/caching/testing.py
M plone/app/caching/tests/test_etags.py
M plone/app/caching/tests/test_integration.py
M plone/app/caching/tests/test_lastmodified.py
M plone/app/caching/tests/test_lookup.py
M plone/app/caching/tests/test_operation_default.py
M plone/app/caching/tests/test_operation_parameters.py
M plone/app/caching/tests/test_operation_utils.py
M plone/app/caching/tests/test_profile_with_caching_proxy.py
M plone/app/caching/tests/test_profile_without_caching_proxy.py
M plone/app/caching/tests/test_purge.py
M plone/app/caching/tests/test_utils.py
M plone/app/caching/utils.py
M setup.cfg
M setup.py
mister-roboto pushed a commit that referenced this pull request Mar 4, 2017
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:04:39+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@3835e49

Fix the buildout by using (a working version of) Zope 2.13.

Files changed:
M buildout.cfg
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:05:05+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@5c5f5de

Add convenience `Makefile` to run the tests.

Files changed:
A Makefile
M buildout.cfg
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:10:00+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@408df88

Fix `tox` configuration (by using buildout instead of pytest).

Files changed:
M tox.ini
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:15:54+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.testing@77952a4

Add .travis.yml.

Files changed:
A .travis.yml
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-04T17:52:52+01:00
Author: Timo Stollenwerk (tisto) <stollenwerk@kitconcept.com>
Commit: plone/plone.testing@3b221f1

Use virtualenv's `--python` option to not having to rely on `virtualenv-2.7` to exist.

Files changed:
M Makefile
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-04T18:11:33+01:00
Author: Timo Stollenwerk (tisto) <tisto@users.noreply.github.com>
Commit: plone/plone.testing@90556e8

Merge pull request #29 from witsch/testing-fixes

Testing fixes

Files changed:
A .travis.yml
A Makefile
M buildout.cfg
M tox.ini
mister-roboto pushed a commit that referenced this pull request Mar 4, 2017
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:04:39+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@3835e49

Fix the buildout by using (a working version of) Zope 2.13.

Files changed:
M buildout.cfg
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:05:05+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@5c5f5de

Add convenience `Makefile` to run the tests.

Files changed:
A Makefile
M buildout.cfg
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:10:00+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@408df88

Fix `tox` configuration (by using buildout instead of pytest).

Files changed:
M tox.ini
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:15:54+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.testing@77952a4

Add .travis.yml.

Files changed:
A .travis.yml
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-04T17:52:52+01:00
Author: Timo Stollenwerk (tisto) <stollenwerk@kitconcept.com>
Commit: plone/plone.testing@3b221f1

Use virtualenv's `--python` option to not having to rely on `virtualenv-2.7` to exist.

Files changed:
M Makefile
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-04T18:11:33+01:00
Author: Timo Stollenwerk (tisto) <tisto@users.noreply.github.com>
Commit: plone/plone.testing@90556e8

Merge pull request #29 from witsch/testing-fixes

Testing fixes

Files changed:
A .travis.yml
A Makefile
M buildout.cfg
M tox.ini
mister-roboto pushed a commit that referenced this pull request Mar 4, 2017
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:04:39+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@3835e49

Fix the buildout by using (a working version of) Zope 2.13.

Files changed:
M buildout.cfg
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:05:05+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@5c5f5de

Add convenience `Makefile` to run the tests.

Files changed:
A Makefile
M buildout.cfg
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:10:00+01:00
Author: Andreas Zeidler (witsch) <az@zitc.de>
Commit: plone/plone.testing@408df88

Fix `tox` configuration (by using buildout instead of pytest).

Files changed:
M tox.ini
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-03T18:15:54+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.testing@77952a4

Add .travis.yml.

Files changed:
A .travis.yml
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-04T17:52:52+01:00
Author: Timo Stollenwerk (tisto) <stollenwerk@kitconcept.com>
Commit: plone/plone.testing@3b221f1

Use virtualenv's `--python` option to not having to rely on `virtualenv-2.7` to exist.

Files changed:
M Makefile
Repository: plone.testing
Branch: refs/heads/4.1.x
Date: 2017-03-04T18:11:33+01:00
Author: Timo Stollenwerk (tisto) <tisto@users.noreply.github.com>
Commit: plone/plone.testing@90556e8

Merge pull request #29 from witsch/testing-fixes

Testing fixes

Files changed:
A .travis.yml
A Makefile
M buildout.cfg
M tox.ini
mister-roboto pushed a commit that referenced this pull request Apr 14, 2017
Branch: refs/heads/master
Date: 2017-04-15T00:44:13+02:00
Author: Norbert @ infoCatch (mtrebron) <norbert@infocatch.com>
Commit: plone/plone.app.contentrules@f104e9f

Ensure error message is an unicode object and not utf-8 bytestring

Files changed:
M CHANGES.rst
M plone/app/contentrules/actions/workflow.py
Repository: plone.app.contentrules
Branch: refs/heads/master
Date: 2017-04-15T01:48:25+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.app.contentrules@05dffda

Merge pull request #29 from plone/mtrebron-unicode

Ensure error message is an unicode object and not utf-8 bytestring

Files changed:
M CHANGES.rst
M plone/app/contentrules/actions/workflow.py
mister-roboto pushed a commit that referenced this pull request Apr 14, 2017
Branch: refs/heads/master
Date: 2017-04-15T00:44:13+02:00
Author: Norbert @ infoCatch (mtrebron) <norbert@infocatch.com>
Commit: plone/plone.app.contentrules@f104e9f

Ensure error message is an unicode object and not utf-8 bytestring

Files changed:
M CHANGES.rst
M plone/app/contentrules/actions/workflow.py
Repository: plone.app.contentrules
Branch: refs/heads/master
Date: 2017-04-15T01:48:25+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.app.contentrules@05dffda

Merge pull request #29 from plone/mtrebron-unicode

Ensure error message is an unicode object and not utf-8 bytestring

Files changed:
M CHANGES.rst
M plone/app/contentrules/actions/workflow.py
mister-roboto pushed a commit that referenced this pull request Sep 4, 2017
Branch: refs/heads/master
Date: 2017-09-01T17:29:38+02:00
Author: Slavisa Karalic (karalics) <slavisa.karalic@gmail.com>
Commit: plone/plone.formwidget.namedfile@bc590de

Fixing potential UnicodeError

Files changed:
M CHANGES.rst
M plone/formwidget/namedfile/converter.py
Repository: plone.formwidget.namedfile

Branch: refs/heads/master
Date: 2017-09-04T11:55:38+02:00
Author: Tom Gross (tomgross) <itconsense@gmail.com>
Commit: plone/plone.formwidget.namedfile@879a536

Merge pull request #29 from karalics/master

Fixing potential UnicodeError

Files changed:
M CHANGES.rst
M plone/formwidget/namedfile/converter.py
mister-roboto pushed a commit that referenced this pull request Oct 10, 2017
Branch: refs/heads/master
Date: 2017-10-09T19:15:38+03:00
Author: Asko Soukka (datakurre) <asko.soukka@iki.fi>
Commit: plone/plone.autoform@f069b17

Add handler registration for text input widgets to support e.g. 'placeholder' parameter in parameterized widgets

Files changed:
M plone/autoform/configure.zcml
M plone/autoform/tests/test_supermodel_handler.py
M plone/autoform/widgets.py
Repository: plone.autoform

Branch: refs/heads/master
Date: 2017-10-09T19:16:46+03:00
Author: Asko Soukka (datakurre) <asko.soukka@iki.fi>
Commit: plone/plone.autoform@d61da6d

Update changelog

Files changed:
M CHANGES.rst
Repository: plone.autoform

Branch: refs/heads/master
Date: 2017-10-10T09:19:33+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.autoform@123eff1

Merge pull request #29 from plone/datakurre-parameterized

Add handler registration for text input widgets to support e.g. 'placeholder' parameter in parametrized widgets

Files changed:
M CHANGES.rst
M plone/autoform/configure.zcml
M plone/autoform/tests/test_supermodel_handler.py
M plone/autoform/widgets.py
mister-roboto pushed a commit that referenced this pull request Nov 30, 2017
Branch: refs/heads/master
Date: 2017-11-30T23:51:24+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/Products.PlonePAS@920115d

Report home_page as empty when it is suspicious.

It may for example contain javascript.
Part of PloneHotfix20171128.

Files changed:
M CHANGES.rst
M src/Products/PlonePAS/tests/test_membershiptool.py
M src/Products/PlonePAS/tools/membership.py
Repository: Products.PlonePAS

Branch: refs/heads/master
Date: 2017-12-01T00:43:25+01:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/Products.PlonePAS@0fb5346

Merge pull request #29 from plone/plone-hotfix20171128-home-page-master

Report home_page as empty when it is suspicious. [master]

Files changed:
M CHANGES.rst
M src/Products/PlonePAS/tests/test_membershiptool.py
M src/Products/PlonePAS/tools/membership.py
mister-roboto pushed a commit that referenced this pull request Jan 27, 2018
Branch: refs/heads/master
Date: 2018-01-25T11:24:31+01:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.registry@cfd1303

Python 2 / 3 compatible imports

Files changed:
M CHANGES.rst
M plone/app/registry/exportimport/handler.py
M plone/app/registry/tests/test_exportimport.py
Repository: plone.app.registry

Branch: refs/heads/master
Date: 2018-01-27T21:46:28+01:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.registry@3f437e0

Merge pull request #29 from plone/python3

Python 2 / 3 compatible imports

Files changed:
M CHANGES.rst
M plone/app/registry/exportimport/handler.py
M plone/app/registry/tests/test_exportimport.py
mister-roboto pushed a commit that referenced this pull request Jan 27, 2018
Branch: refs/heads/master
Date: 2018-01-25T11:24:31+01:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.registry@cfd1303

Python 2 / 3 compatible imports

Files changed:
M CHANGES.rst
M plone/app/registry/exportimport/handler.py
M plone/app/registry/tests/test_exportimport.py
Repository: plone.app.registry

Branch: refs/heads/master
Date: 2018-01-27T21:46:28+01:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.registry@3f437e0

Merge pull request #29 from plone/python3

Python 2 / 3 compatible imports

Files changed:
M CHANGES.rst
M plone/app/registry/exportimport/handler.py
M plone/app/registry/tests/test_exportimport.py
mister-roboto pushed a commit that referenced this pull request May 2, 2018
Branch: refs/heads/master
Date: 2018-04-13T12:55:33+02:00
Author: Tom Gross (tomgross) <itconsense@gmail.com>
Commit: plone/plone.outputfilters@d6bf906

Resolve UIDs with host

Files changed:
M CHANGES.rst
M plone/outputfilters/filters/resolveuid_and_caption.py
M plone/outputfilters/tests/test_resolveuid_and_caption.py
Repository: plone.outputfilters

Branch: refs/heads/master
Date: 2018-04-24T07:17:18Z
Author: Tom Gross (tomgross) <itconsense@gmail.com>
Commit: plone/plone.outputfilters@b3d1512

Remove redundant code

Files changed:
M plone/outputfilters/filters/resolveuid_and_caption.py
Repository: plone.outputfilters

Branch: refs/heads/master
Date: 2018-05-02T16:33:26+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.outputfilters@1dfb70a

Merge pull request #29 from plone/tg_resolve_host_uids

Resolve UIDs with host

Files changed:
M CHANGES.rst
M plone/outputfilters/filters/resolveuid_and_caption.py
M plone/outputfilters/tests/test_resolveuid_and_caption.py
mister-roboto pushed a commit that referenced this pull request May 2, 2018
Branch: refs/heads/master
Date: 2018-04-13T12:55:33+02:00
Author: Tom Gross (tomgross) <itconsense@gmail.com>
Commit: plone/plone.outputfilters@d6bf906

Resolve UIDs with host

Files changed:
M CHANGES.rst
M plone/outputfilters/filters/resolveuid_and_caption.py
M plone/outputfilters/tests/test_resolveuid_and_caption.py
Repository: plone.outputfilters

Branch: refs/heads/master
Date: 2018-04-24T07:17:18Z
Author: Tom Gross (tomgross) <itconsense@gmail.com>
Commit: plone/plone.outputfilters@b3d1512

Remove redundant code

Files changed:
M plone/outputfilters/filters/resolveuid_and_caption.py
Repository: plone.outputfilters

Branch: refs/heads/master
Date: 2018-05-02T16:33:26+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.outputfilters@1dfb70a

Merge pull request #29 from plone/tg_resolve_host_uids

Resolve UIDs with host

Files changed:
M CHANGES.rst
M plone/outputfilters/filters/resolveuid_and_caption.py
M plone/outputfilters/tests/test_resolveuid_and_caption.py
mister-roboto pushed a commit that referenced this pull request May 2, 2018
Branch: refs/heads/master
Date: 2018-04-13T12:55:33+02:00
Author: Tom Gross (tomgross) <itconsense@gmail.com>
Commit: plone/plone.outputfilters@d6bf906

Resolve UIDs with host

Files changed:
M CHANGES.rst
M plone/outputfilters/filters/resolveuid_and_caption.py
M plone/outputfilters/tests/test_resolveuid_and_caption.py
Repository: plone.outputfilters

Branch: refs/heads/master
Date: 2018-04-24T07:17:18Z
Author: Tom Gross (tomgross) <itconsense@gmail.com>
Commit: plone/plone.outputfilters@b3d1512

Remove redundant code

Files changed:
M plone/outputfilters/filters/resolveuid_and_caption.py
Repository: plone.outputfilters

Branch: refs/heads/master
Date: 2018-05-02T16:33:26+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.outputfilters@1dfb70a

Merge pull request #29 from plone/tg_resolve_host_uids

Resolve UIDs with host

Files changed:
M CHANGES.rst
M plone/outputfilters/filters/resolveuid_and_caption.py
M plone/outputfilters/tests/test_resolveuid_and_caption.py
mister-roboto pushed a commit that referenced this pull request Aug 2, 2018
Branch: refs/heads/master
Date: 2018-05-09T09:15:14+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.textfield@62b2ca0

fix transform for py3

Files changed:
M plone/app/textfield/transform.py
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-05-25T15:39:31+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.textfield@cc4d28d

in py3 always output text and send text to transforms

Files changed:
M plone/app/textfield/transform.py
M plone/app/textfield/value.py
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-05-25T15:39:53+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.textfield@d3834a0

fix most tests in py3

Files changed:
M plone/app/textfield/field.rst
M plone/app/textfield/handler.rst
M plone/app/textfield/marshaler.py
M plone/app/textfield/marshaler.rst
M plone/app/textfield/tests.py
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-07-02T12:07:12+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.textfield@e1ebf17

more Python3 compat

Files changed:
M plone/app/textfield/marshaler.py
M plone/app/textfield/marshaler.rst
M plone/app/textfield/tests.py
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-07-02T15:39:04+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.textfield@1debc39

docs

Files changed:
M CHANGES.rst
M README.rst
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-07-02T15:46:01+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.textfield@002c531

remove self-contained buildout left overs

Files changed:
D bootstrap.py
D buildout.cfg
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-07-31T13:31:06+02:00
Author: Peter Mathis (petschki) <peter.mathis@kombinat.at>
Commit: plone/plone.app.textfield@839c4f9

Merge branch 'master' into python3

Files changed:
M CHANGES.rst
M plone/app/textfield/transform.py
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-08-01T11:17:45+02:00
Author: Peter Mathis (petschki) <peter.mathis@kombinat.at>
Commit: plone/plone.app.textfield@04351bf

fix doctests

Files changed:
M CHANGES.rst
M plone/app/textfield/marshaler.rst
Repository: plone.app.textfield

Branch: refs/heads/master
Date: 2018-08-02T16:42:35+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.textfield@0c8a1fd

Merge pull request #29 from plone/python3

Python3

Files changed:
M CHANGES.rst
M README.rst
M plone/app/textfield/field.rst
M plone/app/textfield/handler.rst
M plone/app/textfield/marshaler.py
M plone/app/textfield/marshaler.rst
M plone/app/textfield/tests.py
M plone/app/textfield/transform.py
M plone/app/textfield/value.py
D bootstrap.py
D buildout.cfg
mister-roboto pushed a commit that referenced this pull request Oct 5, 2018
Branch: refs/heads/master
Date: 2018-10-04T17:51:35+02:00
Author: Manuel Reinhardt (reinhardt) <reinhardt@syslab.com>
Commit: plone/Products.CMFPlacefulWorkflow@ee0ded6

Replaced usages of my_worklist.py skin script
which is going to be removed.

Files changed:
A news/28.feature
M Products/CMFPlacefulWorkflow/tests/testCMFPlacefulWorkflow.py
Repository: Products.CMFPlacefulWorkflow

Branch: refs/heads/master
Date: 2018-10-05T14:45:00+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Products.CMFPlacefulWorkflow@50542da

Merge pull request #29 from plone/1801-remove-my-worklist

Replaced usages of my_worklist.py skin script

Files changed:
A news/28.feature
M Products/CMFPlacefulWorkflow/tests/testCMFPlacefulWorkflow.py
mister-roboto pushed a commit that referenced this pull request Jan 7, 2019
Branch: refs/heads/master
Date: 2019-01-02T00:56:52+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.resource@8cc5a20

chore: fix import warnings

Files changed:
M plone/resource/directory.py
M plone/resource/events.py
M plone/resource/testing.py
M plone/resource/tests/test_traversal.py
Repository: plone.resource

Branch: refs/heads/master
Date: 2019-01-02T00:57:39+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.resource@20c1cc8

feat: close iterator to avoid a ResourceWarning

Files changed:
M plone/resource/tests/test_file.py
Repository: plone.resource

Branch: refs/heads/master
Date: 2019-01-02T00:58:22+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.resource@1750b8e

chore: use a context manager

Rather than explicitly closing the object.

Files changed:
M plone/resource/tests/test_file.py
Repository: plone.resource

Branch: refs/heads/master
Date: 2019-01-02T00:59:10+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.resource@aae5329

Update CHANGES

Files changed:
M CHANGES.rst
Repository: plone.resource

Branch: refs/heads/master
Date: 2019-01-07T11:05:31+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.resource@4fff2e0

Merge pull request #29 from plone/fix-warnings

Fix warnings

Files changed:
M CHANGES.rst
M plone/resource/directory.py
M plone/resource/events.py
M plone/resource/testing.py
M plone/resource/tests/test_file.py
M plone/resource/tests/test_traversal.py
mister-roboto pushed a commit that referenced this pull request Jun 19, 2019
Branch: refs/heads/master
Date: 2019-06-18T17:43:18+02:00
Author: Davi Lima (davilima6) <davilima6@gmail.com>
Commit: plone/plone.staticresources@c3af8f3

Add information about entry points; also improve text to be more compact

Files changed:
M README.rst
Repository: plone.staticresources

Branch: refs/heads/master
Date: 2019-06-18T17:52:51+02:00
Author: Davi Lima (davilima6) <davilima6@gmail.com>
Commit: plone/plone.staticresources@9568085

Rewrap lines to 120 chars max

Recommended max is 130 but 120 is a more common default, including in Prettier

Files changed:
M README.rst
Repository: plone.staticresources

Branch: refs/heads/master
Date: 2019-06-18T19:33:05+02:00
Author: Davi Lima (davilima6) <davilima6@gmail.com>
Commit: plone/plone.staticresources@0fd7012

Reorder sections to prioritise the workflow (how to bring changes from mockup to plone.staticresources)

Files changed:
M README.rst
Repository: plone.staticresources

Branch: refs/heads/master
Date: 2019-06-19T15:06:32+02:00
Author: Davi Lima (davilima6) <davilima6@gmail.com>
Commit: plone/plone.staticresources@a251177

Fix Documentation Linting guidelines

Files changed:
M README.rst
Repository: plone.staticresources

Branch: refs/heads/master
Date: 2019-06-19T15:22:05+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.staticresources@a67dad3

Merge pull request #29 from plone/improve_docs

Improve docs: add information about entry points

Files changed:
M README.rst
mister-roboto pushed a commit that referenced this pull request Oct 30, 2019
Branch: refs/heads/master
Date: 2019-10-26T13:43:54+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.releaser@34ae7ba

Fixed adding some package versions twice when releasing.

When releasing a package with a version pin in `[versions:python27]`
this pin would correctly get updated, but an extra pin added at the bottom.

Fixes plone/plone.releaser#24

Files changed:
A news/24.bugfix
M plone/releaser/buildout.py
Repository: plone.releaser

Branch: refs/heads/master
Date: 2019-10-30T14:45:45+01:00
Author: Maurits van Rees (mauritsvanrees) <m.van.rees@zestsoftware.nl>
Commit: plone/plone.releaser@fd804bb

Merge pull request #29 from plone/maurits/issue-24-double-python27-versions

Fixed adding some package versions twice when releasing.

Files changed:
A news/24.bugfix
M plone/releaser/buildout.py
mister-roboto pushed a commit that referenced this pull request Oct 30, 2019
Branch: refs/heads/master
Date: 2019-10-26T13:43:54+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.releaser@34ae7ba

Fixed adding some package versions twice when releasing.

When releasing a package with a version pin in `[versions:python27]`
this pin would correctly get updated, but an extra pin added at the bottom.

Fixes plone/plone.releaser#24

Files changed:
A news/24.bugfix
M plone/releaser/buildout.py
Repository: plone.releaser

Branch: refs/heads/master
Date: 2019-10-30T14:45:45+01:00
Author: Maurits van Rees (mauritsvanrees) <m.van.rees@zestsoftware.nl>
Commit: plone/plone.releaser@fd804bb

Merge pull request #29 from plone/maurits/issue-24-double-python27-versions

Fixed adding some package versions twice when releasing.

Files changed:
A news/24.bugfix
M plone/releaser/buildout.py
mister-roboto pushed a commit that referenced this pull request Feb 17, 2020
Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.scale@0754dca

New ``mode`` argument replacing ``direction``.

Files changed:
A news/29.feature
M CHANGES.rst
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
M plone/scale/tests/test_storage.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.scale@59f51f6

Restore 'keep' scaling mode. Too many plone packages still use it.

Files changed:
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.scale@4ece9b5

Don't turn warnings into errors, this seems to leak into other Plone tests.

Files changed:
M plone/scale/tests/test_scale.py
M plone/scale/tests/test_storage.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@a3010bb

Do not deprecate old direction/mode names.
Simply support all of them.
This change is only to not introduce unnecessary migration work and
people might be used to the old confusing names.
Anyone who gets confused by the names can just use the new ones from PR #29.

Files changed:
M CHANGES.rst
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <mail@florian-schulze.net>
Commit: plone/plone.scale@8d6ccb1

Fix deprecation tests by reseting the warnings registry.

Files changed:
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <mail@florian-schulze.net>
Commit: plone/plone.scale@542c7d8

Added ``calculate_scaled_dimensions`` function to calculate sizes from bare values without actually scaling an image.

Files changed:
A news/37.feature
M plone/scale/scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@7cae9ad

Add failing test to prove @mauritsvanrees comment https://github.com/plone/plone.scale/pull/36/files#r377915411 right

Files changed:
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@0326149

Fix documentation of scaling modes to match it's behavior.

Files changed:
A news/39.hotfix
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@b442814

Double test image scales to in testModes to prevent rounding differences btw. Py3/Py2

Files changed:
M plone/scale/tests/test_scale.py
mister-roboto pushed a commit that referenced this pull request Feb 17, 2020
Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.scale@0754dca

New ``mode`` argument replacing ``direction``.

Files changed:
A news/29.feature
M CHANGES.rst
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
M plone/scale/tests/test_storage.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.scale@59f51f6

Restore 'keep' scaling mode. Too many plone packages still use it.

Files changed:
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <florian.schulze@gmx.net>
Commit: plone/plone.scale@4ece9b5

Don't turn warnings into errors, this seems to leak into other Plone tests.

Files changed:
M plone/scale/tests/test_scale.py
M plone/scale/tests/test_storage.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@a3010bb

Do not deprecate old direction/mode names.
Simply support all of them.
This change is only to not introduce unnecessary migration work and
people might be used to the old confusing names.
Anyone who gets confused by the names can just use the new ones from PR #29.

Files changed:
M CHANGES.rst
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <mail@florian-schulze.net>
Commit: plone/plone.scale@8d6ccb1

Fix deprecation tests by reseting the warnings registry.

Files changed:
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Florian Schulze (fschulze) <mail@florian-schulze.net>
Commit: plone/plone.scale@542c7d8

Added ``calculate_scaled_dimensions`` function to calculate sizes from bare values without actually scaling an image.

Files changed:
A news/37.feature
M plone/scale/scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@7cae9ad

Add failing test to prove @mauritsvanrees comment https://github.com/plone/plone.scale/pull/36/files#r377915411 right

Files changed:
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@0326149

Fix documentation of scaling modes to match it's behavior.

Files changed:
A news/39.hotfix
M plone/scale/scale.py
M plone/scale/tests/test_scale.py
Repository: plone.scale

Branch: refs/heads/master
Date: 2020-02-17T17:59:24+01:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.scale@b442814

Double test image scales to in testModes to prevent rounding differences btw. Py3/Py2

Files changed:
M plone/scale/tests/test_scale.py
mister-roboto pushed a commit that referenced this pull request Jul 9, 2020
Branch: refs/heads/master
Date: 2020-07-08T16:03:03+02:00
Author: Vincent Fretin (vincentfretin) <vincent.fretin@gmail.com>
Commit: plone/plone.app.contentmenu@b56dc02

Fix review state icon position in toolbar when the user doesn't have the permission to change the review state.

Files changed:
A news/29.bugfix
M plone/app/contentmenu/contentmenu.pt
Repository: plone.app.contentmenu

Branch: refs/heads/master
Date: 2020-07-09T10:17:31+02:00
Author: Vincent Fretin (vincentfretin) <vincent.fretin@gmail.com>
Commit: plone/plone.app.contentmenu@b786ef8

Merge pull request #29 from plone/fix-toolbar-state

fix state icon position in toolbar when no permission

Files changed:
A news/29.bugfix
M plone/app/contentmenu/contentmenu.pt
mister-roboto pushed a commit that referenced this pull request Jul 9, 2020
Branch: refs/heads/master
Date: 2020-07-08T16:03:03+02:00
Author: Vincent Fretin (vincentfretin) <vincent.fretin@gmail.com>
Commit: plone/plone.app.contentmenu@b56dc02

Fix review state icon position in toolbar when the user doesn't have the permission to change the review state.

Files changed:
A news/29.bugfix
M plone/app/contentmenu/contentmenu.pt
Repository: plone.app.contentmenu

Branch: refs/heads/master
Date: 2020-07-09T10:17:31+02:00
Author: Vincent Fretin (vincentfretin) <vincent.fretin@gmail.com>
Commit: plone/plone.app.contentmenu@b786ef8

Merge pull request #29 from plone/fix-toolbar-state

fix state icon position in toolbar when no permission

Files changed:
A news/29.bugfix
M plone/app/contentmenu/contentmenu.pt
mister-roboto pushed a commit that referenced this pull request Mar 2, 2021
Branch: refs/heads/1.1.x
Date: 2021-03-01T15:41:42+01:00
Author: Peter Holzer (agitator) <peter.holzer@agitator.com>
Commit: plone/plone.batching@db3d656

cherry pick changes from plone/plone.batching#26

Files changed:
A news/26.feature
M plone/batching/browser.py
Repository: plone.batching

Branch: refs/heads/1.1.x
Date: 2021-03-02T11:25:29+01:00
Author: Maurits van Rees (mauritsvanrees) <m.van.rees@zestsoftware.nl>
Commit: plone/plone.batching@9f2b54b

Merge pull request #29 from plone/1.1.x-req-params-from-parent-req

cherry pick changes from plone/plone.batching#26

Files changed:
A news/26.feature
M plone/batching/browser.py
mister-roboto pushed a commit that referenced this pull request Mar 2, 2021
Branch: refs/heads/1.1.x
Date: 2021-03-01T15:41:42+01:00
Author: Peter Holzer (agitator) <peter.holzer@agitator.com>
Commit: plone/plone.batching@db3d656

cherry pick changes from plone/plone.batching#26

Files changed:
A news/26.feature
M plone/batching/browser.py
Repository: plone.batching

Branch: refs/heads/1.1.x
Date: 2021-03-02T11:25:29+01:00
Author: Maurits van Rees (mauritsvanrees) <m.van.rees@zestsoftware.nl>
Commit: plone/plone.batching@9f2b54b

Merge pull request #29 from plone/1.1.x-req-params-from-parent-req

cherry pick changes from plone/plone.batching#26

Files changed:
A news/26.feature
M plone/batching/browser.py
mister-roboto pushed a commit that referenced this pull request Dec 22, 2021
Branch: refs/heads/master
Date: 2021-12-22T10:56:38+01:00
Author: Peter Mathis (petschki) <peter.mathis@kombinat.at>
Commit: plone/plone.app.debugtoolbar@5354e86

Fix missing zcml directive when plone.app.standardtiles is installed

fixes #18

Files changed:
A news/18.bugfix
M src/plone/app/debugtoolbar/browser/configure.zcml
Repository: plone.app.debugtoolbar

Branch: refs/heads/master
Date: 2021-12-22T15:00:50+01:00
Author: Peter Mathis (petschki) <petschki@users.noreply.github.com>
Commit: plone/plone.app.debugtoolbar@39712c5

Merge pull request #29 from plone/issue-18

Fix missing zcml directive when plone.app.standardtiles is installed

Files changed:
A news/18.bugfix
M src/plone/app/debugtoolbar/browser/configure.zcml
mister-roboto pushed a commit that referenced this pull request Dec 22, 2021
Branch: refs/heads/master
Date: 2021-12-22T10:56:38+01:00
Author: Peter Mathis (petschki) <peter.mathis@kombinat.at>
Commit: plone/plone.app.debugtoolbar@5354e86

Fix missing zcml directive when plone.app.standardtiles is installed

fixes #18

Files changed:
A news/18.bugfix
M src/plone/app/debugtoolbar/browser/configure.zcml
Repository: plone.app.debugtoolbar

Branch: refs/heads/master
Date: 2021-12-22T15:00:50+01:00
Author: Peter Mathis (petschki) <petschki@users.noreply.github.com>
Commit: plone/plone.app.debugtoolbar@39712c5

Merge pull request #29 from plone/issue-18

Fix missing zcml directive when plone.app.standardtiles is installed

Files changed:
A news/18.bugfix
M src/plone/app/debugtoolbar/browser/configure.zcml
mister-roboto pushed a commit that referenced this pull request Feb 9, 2023
Branch: refs/heads/master
Date: 2023-02-09T14:16:12+01:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.formwidget.recurrence@141f402

Add the news folder

Files changed:
A news/.gitkeep
Repository: plone.formwidget.recurrence

Branch: refs/heads/master
Date: 2023-02-09T14:16:24+01:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.formwidget.recurrence@ff96df0

Use plone.base

Fixes #29

Files changed:
A news/29.bugfix
M plone/formwidget/recurrence/browser/json_recurrence.py
M plone/formwidget/recurrence/configure.zcml
M setup.py
Repository: plone.formwidget.recurrence

Branch: refs/heads/master
Date: 2023-02-09T14:26:52+01:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.formwidget.recurrence@5a9b76a

Fix needed because of a new black version

Files changed:
M plone/formwidget/recurrence/tests/base.py
Repository: plone.formwidget.recurrence

Branch: refs/heads/master
Date: 2023-02-09T16:22:56+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.formwidget.recurrence@40236e1

Merge pull request #30 from plone/plone-base

Plone base

Files changed:
A news/.gitkeep
A news/29.bugfix
M plone/formwidget/recurrence/browser/json_recurrence.py
M plone/formwidget/recurrence/configure.zcml
M plone/formwidget/recurrence/tests/base.py
M setup.py
mister-roboto pushed a commit that referenced this pull request Mar 6, 2023
Branch: refs/heads/main
Date: 2023-03-06T11:06:22+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.base@cae106a

move INavigationRoot from plone.app.layout to plone.base.

part one to fix  plone/Products.CMFPlone#3731

Files changed:
A news/Plone-3731.bugfix
M src/plone/base/interfaces/__init__.py
M src/plone/base/interfaces/siteroot.py
Repository: plone.base

Branch: refs/heads/main
Date: 2023-03-06T15:25:07+01:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.base@e5e8275

Merge pull request #29 from plone/fix-navigationroot-import

move INavigationRoot from plone.app.layout to plone.base.

Files changed:
A news/Plone-3731.bugfix
M src/plone/base/interfaces/__init__.py
M src/plone/base/interfaces/siteroot.py
mister-roboto pushed a commit that referenced this pull request Apr 3, 2023
Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@40e02f3

Configuring with plone/meta

Files changed:
A .editorconfig
A .meta.toml
A .pre-commit-config.yaml
A news/93e1ab65.internal
M pyproject.toml
M setup.cfg
M tox.ini
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@1f1670d

chore: pyupgrade

Files changed:
M plone/__init__.py
M plone/memoize/__init__.py
M plone/memoize/compress.py
M plone/memoize/forever.py
M plone/memoize/instance.py
M plone/memoize/interfaces.py
M plone/memoize/ram.py
M plone/memoize/request.py
M plone/memoize/tests.py
M plone/memoize/view.py
M plone/memoize/volatile.py
M setup.py
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@70f8345

chore: isort

Files changed:
M plone/memoize/request.py
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@f8b0412

chore: black

Files changed:
M plone/memoize/request.py
M plone/memoize/view.py
M setup.py
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@6c65d32

chore: zptlint

Files changed:
M plone/memoize/configure.zcml
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@d0f888d

feat: drop six dependency

Files changed:
M plone/memoize/ram.py
M setup.py
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@e46275d

feat: codespell

Files changed:
M plone/memoize/view.rst
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:23:59+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@164e08b

feat: pyroma

Files changed:
M setup.py
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:36:05+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@283d299

feat: python 3 only

Files changed:
M .github/workflows/tests.yml
M setup.py
M tox.ini
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:37:17+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@769e029

feat: drop unused slimmer code

Files changed:
M plone/memoize/compress.py
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:37:17+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@13d4336

feat: drop python 2 imports

Files changed:
M plone/memoize/instance.rst
M plone/memoize/ram.py
M plone/memoize/view.py
M plone/memoize/view.rst
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:37:17+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@a8ee438

feat: configure z3c.dependencychecker

Files changed:
M pyproject.toml
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:37:17+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@e4318a8

feat: declare dependencies

Files changed:
M setup.py
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-01T19:40:19+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.memoize@90ef733

fix(tox): install zope.testrunner for GHA

Files changed:
M tox.ini
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-03T10:27:39+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.memoize@e39cd04

Configuring with plone/meta

Files changed:
M .gitignore
M .meta.toml
M setup.cfg
M tox.ini
D .coveragerc
Repository: plone.memoize

Branch: refs/heads/master
Date: 2023-04-03T10:36:31+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.memoize@a2ba755

Merge pull request #29 from plone/config-with-default-template-6e0b2a46

Config with default template

Files changed:
A .editorconfig
A .meta.toml
A .pre-commit-config.yaml
A news/93e1ab65.internal
M .github/workflows/tests.yml
M .gitignore
M plone/__init__.py
M plone/memoize/__init__.py
M plone/memoize/compress.py
M plone/memoize/configure.zcml
M plone/memoize/forever.py
M plone/memoize/instance.py
M plone/memoize/instance.rst
M plone/memoize/interfaces.py
M plone/memoize/ram.py
M plone/memoize/request.py
M plone/memoize/tests.py
M plone/memoize/view.py
M plone/memoize/view.rst
M plone/memoize/volatile.py
M pyproject.toml
M setup.cfg
M setup.py
M tox.ini
D .coveragerc
mister-roboto pushed a commit that referenced this pull request Jul 14, 2023
Branch: refs/heads/master
Date: 2023-05-19T17:01:00+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Plone@d7528ac

depend here on plone.app.discussion and turn it in a core addon

Files changed:
M setup.cfg
Repository: Plone

Branch: refs/heads/master
Date: 2023-07-13T14:55:13+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Plone@9e8d610

Merge branch 'master' into pa-discussion-core-addon

Files changed:
M CHANGES.md
M CONTRIBUTING.md
M setup.cfg
Repository: Plone

Branch: refs/heads/master
Date: 2023-07-14T16:36:26+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Plone@27dee80

Merge pull request #29 from plone/pa-discussion-core-addon

depend here on plone.app.discussion and turn it in a core addon

Files changed:
M setup.cfg
mister-roboto pushed a commit that referenced this pull request Oct 12, 2024
Branch: refs/heads/master
Date: 2024-10-07T21:25:24Z
Author: pre-commit-ci[bot] (pre-commit-ci[bot]) <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Commit: plone/plone.transformchain@5402d75

[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/psf/black: 24.8.0 → 24.10.0](psf/black@24.8.0...24.10.0)

Files changed:
M .pre-commit-config.yaml
Repository: plone.transformchain

Branch: refs/heads/master
Date: 2024-10-13T00:13:21+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.transformchain@853079a

Merge pull request #29 from plone/pre-commit-ci-update-config

[pre-commit.ci] pre-commit autoupdate

Files changed:
M .pre-commit-config.yaml
mister-roboto pushed a commit that referenced this pull request Oct 12, 2024
Branch: refs/heads/master
Date: 2024-10-07T21:25:24Z
Author: pre-commit-ci[bot] (pre-commit-ci[bot]) <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Commit: plone/plone.transformchain@5402d75

[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/psf/black: 24.8.0 → 24.10.0](psf/black@24.8.0...24.10.0)

Files changed:
M .pre-commit-config.yaml
Repository: plone.transformchain

Branch: refs/heads/master
Date: 2024-10-13T00:13:21+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.transformchain@853079a

Merge pull request #29 from plone/pre-commit-ci-update-config

[pre-commit.ci] pre-commit autoupdate

Files changed:
M .pre-commit-config.yaml
mister-roboto pushed a commit that referenced this pull request Oct 12, 2024
Branch: refs/heads/master
Date: 2024-10-07T21:23:57Z
Author: pre-commit-ci[bot] (pre-commit-ci[bot]) <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Commit: plone/plone.browserlayer@ecfc4f8

[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/psf/black: 24.8.0 → 24.10.0](psf/black@24.8.0...24.10.0)

Files changed:
M .pre-commit-config.yaml
Repository: plone.browserlayer

Branch: refs/heads/master
Date: 2024-10-13T00:18:00+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.browserlayer@9a3b670

Merge pull request #29 from plone/pre-commit-ci-update-config

[pre-commit.ci] pre-commit autoupdate

Files changed:
M .pre-commit-config.yaml
mister-roboto pushed a commit that referenced this pull request Oct 12, 2024
Branch: refs/heads/master
Date: 2024-10-07T21:23:57Z
Author: pre-commit-ci[bot] (pre-commit-ci[bot]) <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Commit: plone/plone.browserlayer@ecfc4f8

[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/psf/black: 24.8.0 → 24.10.0](psf/black@24.8.0...24.10.0)

Files changed:
M .pre-commit-config.yaml
Repository: plone.browserlayer

Branch: refs/heads/master
Date: 2024-10-13T00:18:00+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.browserlayer@9a3b670

Merge pull request #29 from plone/pre-commit-ci-update-config

[pre-commit.ci] pre-commit autoupdate

Files changed:
M .pre-commit-config.yaml
mister-roboto pushed a commit that referenced this pull request Jan 21, 2025
Branch: refs/heads/master
Date: 2025-01-20T22:19:34+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.theme@e2bc6a1

Fix DeprecationWarnings.

Files changed:
A news/4090.bugfix
M plone/theme/README.rst
Repository: plone.theme

Branch: refs/heads/master
Date: 2025-01-21T12:53:07+01:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.theme@86dd80a

Merge pull request #29 from plone/maurits-warnings

Fix DeprecationWarnings.

Files changed:
A news/4090.bugfix
M plone/theme/README.rst
mister-roboto pushed a commit that referenced this pull request Jan 21, 2025
Branch: refs/heads/master
Date: 2025-01-20T22:19:34+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.theme@e2bc6a1

Fix DeprecationWarnings.

Files changed:
A news/4090.bugfix
M plone/theme/README.rst
Repository: plone.theme

Branch: refs/heads/master
Date: 2025-01-21T12:53:07+01:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.theme@86dd80a

Merge pull request #29 from plone/maurits-warnings

Fix DeprecationWarnings.

Files changed:
A news/4090.bugfix
M plone/theme/README.rst
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants