diff --git a/last_commit.txt b/last_commit.txt index edac05234b..8e8482535a 100644 --- a/last_commit.txt +++ b/last_commit.txt @@ -1,216 +1,34 @@ -Repository: Products.Archetypes +Repository: plone.app.robotframework Branch: refs/heads/master -Date: 2018-10-02T22:03:19+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/28e209c22a4ece1f83e6ce6e6f4b13fbb4afc5c8 +Date: 2018-10-03T17:49:54+02:00 +Author: Joni Orponen (Rotonen) +Commit: https://github.com/plone/plone.app.robotframework/commit/b8d9344f8d9ef1d871205b55b72641b79eda108d -skip test because of testlayer mess ... fix is following +Default to picking a free port. Files changed: -M Products/Archetypes/tests/test_pawidgets.py +M CHANGES.rst +M src/plone/app/robotframework/variables.py -b'diff --git a/Products/Archetypes/tests/test_pawidgets.py b/Products/Archetypes/tests/test_pawidgets.py\nindex 44338997..1b6d2f67 100644\n--- a/Products/Archetypes/tests/test_pawidgets.py\n+++ b/Products/Archetypes/tests/test_pawidgets.py\n@@ -20,12 +20,7 @@\n \n import json\n import mock\n-\n-try:\n- import unittest2 as unittest\n-except ImportError: # pragma: nocover\n- import unittest # pragma: nocover\n- assert unittest # pragma: nocover\n+import unittest\n \n import plone.uuid\n \n@@ -316,6 +311,7 @@ def test_process_form(self):\n # class AjaxSelectWidgetTests(unittest.TestCase):\n \n \n+@unittest.skip("Skipped because of testlayer mess")\n class RelatedItemsWidgetTests(unittest.TestCase):\n \n layer = ZCML_DIRECTIVES\n' +b"diff --git a/CHANGES.rst b/CHANGES.rst\nindex e9c7e2a..95b80bf 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -6,6 +6,10 @@ Changelog\n \n Breaking changes:\n \n+- Default to the new plone.testing default of picking the ZServer port\n+ dynamically.\n+ [Rotonen]\n+\n - Remove compatibility code for Plone 4.x.\n [hvelarde]\n \ndiff --git a/src/plone/app/robotframework/variables.py b/src/plone/app/robotframework/variables.py\nindex 3345465..e28fa8b 100644\n--- a/src/plone/app/robotframework/variables.py\n+++ b/src/plone/app/robotframework/variables.py\n@@ -1,23 +1,12 @@\n+from plone.testing.z2 import ZSERVER_FIXTURE\n import os\n import pkg_resources\n \n-try:\n- from plone.testing.z2 import DEFAULT_ZSERVER_PORT\n-except ImportError:\n- # DEFAULT_ZSERVER_PORT is not defined until plone.testing == 4.0.8\n- DEFAULT_ZSERVER_PORT = 55001\n-\n-# plone.testing checks environment to allow overriding DEFAULT_ZSERVER_PORT\n-ZSERVER_PORT = os.environ.get('ZSERVER_PORT', DEFAULT_ZSERVER_PORT)\n-\n-# Allow specifying HOST and PORT through environment variables for instance,\n-# if tests should go through a proxy\n-ZOPE_HOST = os.environ.get('ZOPE_HOST', 'localhost')\n-ZOPE_PORT = os.environ.get('ZOPE_PORT', ZSERVER_PORT)\n+ZOPE_HOST = ZSERVER_FIXTURE.host\n+ZOPE_PORT = ZSERVER_FIXTURE.port\n \n CMFPLONE_VERSION = pkg_resources.get_distribution('Products.CMFPlone').version\n if CMFPLONE_VERSION.startswith('4.'):\n CMFPLONE_SELECTORS = 'selectors/cmfplone43.robot'\n elif CMFPLONE_VERSION.startswith('5.'):\n CMFPLONE_SELECTORS = 'selectors/cmfplone50.robot'\n-\n" -Repository: Products.Archetypes +Repository: plone.app.robotframework Branch: refs/heads/master -Date: 2018-10-02T22:45:24+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/c08890aab5ce335de4a8eb49e4752318005958c6 - -add changelog - -Files changed: -A news/113.bugfix - -b'diff --git a/news/113.bugfix b/news/113.bugfix\nnew file mode 100644\nindex 00000000..b840990b\n--- /dev/null\n+++ b/news/113.bugfix\n@@ -0,0 +1,3 @@\n+Fix testlayer mess\n+\n+[petschki]\n\\ No newline at end of file\n' - -Repository: Products.Archetypes - - -Branch: refs/heads/master -Date: 2018-10-03T11:30:56+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/26b91d9cfcf1098056a228838da242f42836c7b7 - -fid doctest failures - -Files changed: -M Products/Archetypes/tests/events.txt -M Products/Archetypes/tests/folder_marshall.txt -M Products/Archetypes/tests/test_functional.py -M Products/Archetypes/tests/translate.txt -M Products/Archetypes/tests/traversal.txt -M Products/Archetypes/tests/traversal_4981.txt -M Products/Archetypes/tests/webdav_operations.txt - -b'diff --git a/Products/Archetypes/tests/events.txt b/Products/Archetypes/tests/events.txt\nindex 4d7f9026..70c4c0e7 100644\n--- a/Products/Archetypes/tests/events.txt\n+++ b/Products/Archetypes/tests/events.txt\n@@ -156,3 +156,9 @@ Test that a MKCOL also fires an IWebDAVObjectInitialized event:\n \n Clean up\n >>> AppZapper().clear()\n+\n+ >>> del folder[\'a\']\n+ >>> del folder[\'f1\']\n+\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/folder_marshall.txt b/Products/Archetypes/tests/folder_marshall.txt\nindex 6b818d34..a5512205 100644\n--- a/Products/Archetypes/tests/folder_marshall.txt\n+++ b/Products/Archetypes/tests/folder_marshall.txt\n@@ -197,6 +197,10 @@ like a normal resource:\n \n Clean up\n \n+ >>> AppZapper().clear()\n+\n >>> del portal[\'simple_folder\']\n >>> del portal[\'simple_btree_folder\']\n- >>> AppZapper().clear()\n+\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/test_functional.py b/Products/Archetypes/tests/test_functional.py\nindex 4c1f2e11..ce9aedcc 100644\n--- a/Products/Archetypes/tests/test_functional.py\n+++ b/Products/Archetypes/tests/test_functional.py\n@@ -173,7 +173,7 @@ def test_id_change_with_without_marker(self):\n \n self.assertTrue(auto_id in self.folder.objectIds())\n new_obj = getattr(self.folder, auto_id)\n-\n+ import pdb; pdb.set_trace()\n # Change the title\n obj_title = "New Title for Object"\n new_obj_path = \'/%s\' % new_obj.absolute_url(1)\ndiff --git a/Products/Archetypes/tests/translate.txt b/Products/Archetypes/tests/translate.txt\nindex 0ce2b4fa..4e8bb612 100644\n--- a/Products/Archetypes/tests/translate.txt\n+++ b/Products/Archetypes/tests/translate.txt\n@@ -46,4 +46,10 @@ Now be sure our values are correctly translated in view::\n >>> \'translated:test2\' in br.contents and \'translated:Test\' in br.contents\n True\n >>> gsm.unregisterUtility(t, ITranslationDomain, \'attesti18n\')\n- True\n\\ No newline at end of file\n+ True\n+\n+Cleaup \n+\n+ >>> del portal[\'vocdemodoc3\']\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/traversal.txt b/Products/Archetypes/tests/traversal.txt\nindex ed8f471a..9b57a168 100644\n--- a/Products/Archetypes/tests/traversal.txt\n+++ b/Products/Archetypes/tests/traversal.txt\n@@ -388,4 +388,11 @@ test types are assigning a dummy var called_afterMKCOL_hook.\n Clean up\n >>> AppZapper().clear()\n \n+ >>> del portal[\'test_document\']\n+ >>> del portal[\'index_html\']\n+ >>> del portal[\'simple_folder\']\n+ >>> del portal[\'simple_btree_folder\']\n+ \n+ >>> import transaction\n+ >>> transaction.commit()\n \ndiff --git a/Products/Archetypes/tests/traversal_4981.txt b/Products/Archetypes/tests/traversal_4981.txt\nindex bb4a80cd..b194f7ea 100644\n--- a/Products/Archetypes/tests/traversal_4981.txt\n+++ b/Products/Archetypes/tests/traversal_4981.txt\n@@ -40,3 +40,9 @@ BaseObject.__bobo_traverse__ intercepts GET and POST, but not HEAD.\n ...\n \n >>> AppZapper().clear()\n+ >>> del portal[\'test_document\']\n+ >>> del portal[\'simple_folder\']\n+ >>> del portal[\'simple_btree_folder\']\n+\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/webdav_operations.txt b/Products/Archetypes/tests/webdav_operations.txt\nindex 6970203a..f0240785 100644\n--- a/Products/Archetypes/tests/webdav_operations.txt\n+++ b/Products/Archetypes/tests/webdav_operations.txt\n@@ -15,6 +15,9 @@ First, setup some content with references:\n \n >>> f = makeContent(folder, portal_type=\'Folder\', title=\'Sub\', id=\'f\')\n \n+ >>> import transaction\n+ >>> transaction.commit()\n+\n >>> _ = a.addReference(b, "KnowsAbout")\n >>> _ = b.addReference(a, "KnowsAbout")\n \n@@ -74,3 +77,9 @@ Do a WebDAV move with \'b\' and make sure it keeps the references:\n \n Clean up\n >>> AppZapper().clear()\n+\n+ >>> del folder[\'a\']\n+ >>> del folder[\'f\']\n+\n+ >>> import transaction\n+ >>> transaction.commit()\n' - -Repository: Products.Archetypes - - -Branch: refs/heads/master -Date: 2018-10-03T11:31:14+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/87b08aa3dcd7349650e6135789967bde63b1e3f7 - -remove pdb - -Files changed: -M Products/Archetypes/tests/test_functional.py - -b'diff --git a/Products/Archetypes/tests/test_functional.py b/Products/Archetypes/tests/test_functional.py\nindex ce9aedcc..4c1f2e11 100644\n--- a/Products/Archetypes/tests/test_functional.py\n+++ b/Products/Archetypes/tests/test_functional.py\n@@ -173,7 +173,7 @@ def test_id_change_with_without_marker(self):\n \n self.assertTrue(auto_id in self.folder.objectIds())\n new_obj = getattr(self.folder, auto_id)\n- import pdb; pdb.set_trace()\n+\n # Change the title\n obj_title = "New Title for Object"\n new_obj_path = \'/%s\' % new_obj.absolute_url(1)\n' - -Repository: Products.Archetypes - - -Branch: refs/heads/master -Date: 2018-10-03T12:05:38+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/a0bbb5d93c767fcdbdcb96daf29b79a59d8b9f87 - -cleanup - -Files changed: -M Products/Archetypes/tests/test_annotation.py -M Products/Archetypes/tests/test_baseobject.py -M Products/Archetypes/tests/test_baseschema.py -M Products/Archetypes/tests/test_baseunit.py -M Products/Archetypes/tests/test_browser_utils.py -M Products/Archetypes/tests/test_classgen.py -M Products/Archetypes/tests/test_construction.py -M Products/Archetypes/tests/test_contenttype.py -M Products/Archetypes/tests/test_copying.py -M Products/Archetypes/tests/test_datecomponents.py -M Products/Archetypes/tests/test_default_mimetypes.py -M Products/Archetypes/tests/test_event.py -M Products/Archetypes/tests/test_extensions_utils.py -M Products/Archetypes/tests/test_externaleditor.py -M Products/Archetypes/tests/test_fields.py -M Products/Archetypes/tests/test_file_upload.py -M Products/Archetypes/tests/test_filename.py -M Products/Archetypes/tests/test_functional.py -M Products/Archetypes/tests/test_index.py -M Products/Archetypes/tests/test_languagevocabulary.py -M Products/Archetypes/tests/test_marshaller.py -M Products/Archetypes/tests/test_metadata.py -M Products/Archetypes/tests/test_referenceCatalog.py -M Products/Archetypes/tests/test_referenceable.py -M Products/Archetypes/tests/test_rename.py -M Products/Archetypes/tests/test_schemata.py -M Products/Archetypes/tests/test_security.py -M Products/Archetypes/tests/test_templatemixin.py -M Products/Archetypes/tests/test_unicode.py -M Products/Archetypes/tests/test_update_schema.py -M Products/Archetypes/tests/utils.py -D Products/Archetypes/tests/atsitetestcase.py - -b'diff --git a/Products/Archetypes/tests/atsitetestcase.py b/Products/Archetypes/tests/atsitetestcase.py\ndeleted file mode 100644\nindex 4bcf690c..00000000\n--- a/Products/Archetypes/tests/atsitetestcase.py\n+++ /dev/null\n@@ -1,3 +0,0 @@\n-from Products.Archetypes.tests.attestcase import ATTestCase as ATSiteTestCase\n-\n-ATFunctionalSiteTestCase = ATSiteTestCase\ndiff --git a/Products/Archetypes/tests/test_annotation.py b/Products/Archetypes/tests/test_annotation.py\nindex dc07ee2b..2e29d53c 100644\n--- a/Products/Archetypes/tests/test_annotation.py\n+++ b/Products/Archetypes/tests/test_annotation.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.atapi import BaseSchema, Schema, StringField, \\\n AnnotationStorage, MetadataAnnotationStorage, AT_MD_STORAGE, \\\n getAnnotation, AT_ANN_STORAGE\n@@ -52,7 +52,7 @@ def gen_anndummy():\n gen_class(AnnDummy, annschema)\n \n \n-class AnnotationTest(ATSiteTestCase):\n+class AnnotationTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -102,7 +102,7 @@ def test_del(self):\n self.assertFalse(ann.hasSubkey(\'test\', subkey=\'testsub\'))\n \n \n-class MetadataAnnotationStorageTest(ATSiteTestCase):\n+class MetadataAnnotationStorageTest(ATTestCase):\n \n def afterSetUp(self):\n gen_anndummy()\n@@ -128,7 +128,7 @@ def test_gestset(self):\n self.assertEqual(ann.getSubkey(AT_MD_STORAGE, subkey=\'meta\'), \'egg\')\n \n \n-class AnnotationStorageTest(ATSiteTestCase):\n+class AnnotationStorageTest(ATTestCase):\n \n def afterSetUp(self):\n gen_anndummy()\ndiff --git a/Products/Archetypes/tests/test_baseobject.py b/Products/Archetypes/tests/test_baseobject.py\nindex 063a07b8..79bee52a 100644\n--- a/Products/Archetypes/tests/test_baseobject.py\n+++ b/Products/Archetypes/tests/test_baseobject.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n \n from Products.Archetypes import PloneMessageFactory as _\n@@ -70,10 +70,10 @@ def getCharset(self):\n return \'utf-8\'\n \n \n-class BaseObjectTest(ATSiteTestCase):\n+class BaseObjectTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(Dummy, oid=\'dummy\', context=self.portal,\n schema=schema)\n \ndiff --git a/Products/Archetypes/tests/test_baseschema.py b/Products/Archetypes/tests/test_baseschema.py\nindex c29ed853..d35dd218 100644\n--- a/Products/Archetypes/tests/test_baseschema.py\n+++ b/Products/Archetypes/tests/test_baseschema.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n \n # need this to initialize new BU for tests\n from Products.Archetypes.tests.test_classgen import Dummy\n@@ -44,10 +44,10 @@\n EmptyValidator.appendSufficient(\'isEmpty\')\n \n \n-class BaseSchemaTest(ATSiteTestCase):\n+class BaseSchemaTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n atapi.registerType(Dummy, \'Archetypes\')\n content_types, constructors, ftis = atapi.process_types(\n atapi.listTypes(), PKG_NAME)\ndiff --git a/Products/Archetypes/tests/test_baseunit.py b/Products/Archetypes/tests/test_baseunit.py\nindex 36ffb1ab..f259e4ae 100644\n--- a/Products/Archetypes/tests/test_baseunit.py\n+++ b/Products/Archetypes/tests/test_baseunit.py\n@@ -28,7 +28,7 @@\n import os\n import glob\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n from Products.Archetypes.tests.utils import normalize_html\n from Products.Archetypes.atapi import BaseUnit\n@@ -36,7 +36,7 @@\n from Products.Archetypes.tests.test_classgen import gen_dummy\n \n \n-class BaseUnitTest(ATSiteTestCase):\n+class BaseUnitTest(ATTestCase):\n \n def testSame(self):\n gen_dummy()\ndiff --git a/Products/Archetypes/tests/test_browser_utils.py b/Products/Archetypes/tests/test_browser_utils.py\nindex a405136c..f6fe0ae4 100644\n--- a/Products/Archetypes/tests/test_browser_utils.py\n+++ b/Products/Archetypes/tests/test_browser_utils.py\n@@ -1,11 +1,11 @@\n from zope.component import getMultiAdapter\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.atapi import DisplayList\n from Products.Archetypes.atapi import IntDisplayList\n \n \n-class UtilsMethodsTests(ATSiteTestCase):\n+class UtilsMethodsTests(ATTestCase):\n """Test the different methods in browser.utils view."""\n \n def test_translate_vocab_with_special_chars(self):\ndiff --git a/Products/Archetypes/tests/test_classgen.py b/Products/Archetypes/tests/test_classgen.py\nindex fb0e319a..f7a96d72 100644\n--- a/Products/Archetypes/tests/test_classgen.py\n+++ b/Products/Archetypes/tests/test_classgen.py\n@@ -30,7 +30,7 @@\n from DateTime import DateTime\n from AccessControl import ClassSecurityInfo\n from AccessControl.SecurityInfo import ACCESS_PUBLIC, ACCESS_PRIVATE\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.tests.utils import gen_class\n from Products.Archetypes import atapi\n@@ -128,10 +128,10 @@ def gen_dummy():\n gen_class(Dummy, schema)\n \n \n-class ClassGenTest(ATSiteTestCase):\n+class ClassGenTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(Dummy, oid=\'dummy\',\n context=self.portal,\n schema=schema)\ndiff --git a/Products/Archetypes/tests/test_construction.py b/Products/Archetypes/tests/test_construction.py\nindex 5167e2a4..e04673c4 100644\n--- a/Products/Archetypes/tests/test_construction.py\n+++ b/Products/Archetypes/tests/test_construction.py\n@@ -1,7 +1,7 @@\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n \n \n-class FactoryTest(ATSiteTestCase):\n+class FactoryTest(ATTestCase):\n \n def testSimplePortalType(self):\n self.folder.invokeFactory(id="dummy", type_name="SimpleType")\ndiff --git a/Products/Archetypes/tests/test_contenttype.py b/Products/Archetypes/tests/test_contenttype.py\nindex 05c01ac6..0370301e 100644\n--- a/Products/Archetypes/tests/test_contenttype.py\n+++ b/Products/Archetypes/tests/test_contenttype.py\n@@ -27,7 +27,7 @@\n \n import os\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n # this trigger zope imports\n@@ -38,7 +38,7 @@\n from Products.Archetypes.atapi import *\n \n \n-class GetContentTypeTest(ATSiteTestCase):\n+class GetContentTypeTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -106,7 +106,7 @@ def test_filefielduploadwithoutmime(self):\n self.assertEqual(field.getContentType(obj), \'application/x-tar\')\n \n \n-class SetContentTypeTest(ATSiteTestCase):\n+class SetContentTypeTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\ndiff --git a/Products/Archetypes/tests/test_copying.py b/Products/Archetypes/tests/test_copying.py\nindex c03b0547..276875bd 100644\n--- a/Products/Archetypes/tests/test_copying.py\n+++ b/Products/Archetypes/tests/test_copying.py\n@@ -34,7 +34,7 @@\n from AccessControl.SecurityManagement import newSecurityManager\n from AccessControl.SecurityManagement import noSecurityManager\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from plone.app.testing import SITE_OWNER_NAME as portal_owner\n@@ -45,7 +45,7 @@\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n \n-class CutPasteCopyPasteTests(ATSiteTestCase):\n+class CutPasteCopyPasteTests(ATTestCase):\n \n def test_copy_and_paste(self):\n ffrom = makeContent(\n@@ -76,10 +76,10 @@ def test_cut_and_paste(self):\n self.assertFalse(\'tourist\' not in fto.contentIds())\n \n \n-class PortalCopyTests(ATSiteTestCase):\n+class PortalCopyTests(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.setRoles([\'Manager\'])\n \n imgpath = os.path.join(PACKAGE_HOME, os.pardir, \'tool.gif\')\ndiff --git a/Products/Archetypes/tests/test_datecomponents.py b/Products/Archetypes/tests/test_datecomponents.py\nindex 963eb192..1306dc16 100644\n--- a/Products/Archetypes/tests/test_datecomponents.py\n+++ b/Products/Archetypes/tests/test_datecomponents.py\n@@ -1,4 +1,4 @@\n-from Products.Archetypes.tests.atsitetestcase import ATFunctionalSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Testing import ZopeTestCase as ztc\n import unittest\n import doctest\n@@ -9,6 +9,6 @@ def test_suite():\n return unittest.TestSuite([\n ztc.ZopeDocFileSuite(\'browser/datecomponents.txt\',\n package=\'Products.Archetypes\',\n- test_class=ATFunctionalSiteTestCase,\n+ test_class=ATTestCase,\n optionflags=optionflags),\n ])\ndiff --git a/Products/Archetypes/tests/test_default_mimetypes.py b/Products/Archetypes/tests/test_default_mimetypes.py\nindex 7841a802..95d5103e 100644\n--- a/Products/Archetypes/tests/test_default_mimetypes.py\n+++ b/Products/Archetypes/tests/test_default_mimetypes.py\n@@ -1,11 +1,11 @@\n # test initialisation and setup\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.mimetype_utils import getDefaultContentType\n from Products.Archetypes.mimetype_utils import setDefaultContentType\n \n \n-class TestDefaultMimeTypes(ATSiteTestCase):\n+class TestDefaultMimeTypes(ATTestCase):\n \n def test_ATDocumentDefaultType(self):\n # move portal_properties out of the way. it was not here\ndiff --git a/Products/Archetypes/tests/test_event.py b/Products/Archetypes/tests/test_event.py\nindex 842b4220..f52e45a6 100644\n--- a/Products/Archetypes/tests/test_event.py\n+++ b/Products/Archetypes/tests/test_event.py\n@@ -5,7 +5,7 @@\n from zope.interface import implementer, Interface, directlyProvides\n from zope import component\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests import utils\n \n from zope.publisher.browser import TestRequest\n@@ -72,7 +72,7 @@ def edited_handler(ob, event):\n ob._editedCaught = True\n \n \n-class ValidationEventTests(ATSiteTestCase):\n+class ValidationEventTests(ATTestCase):\n \n def testPreValidatingEvent(self):\n \ndiff --git a/Products/Archetypes/tests/test_extensions_utils.py b/Products/Archetypes/tests/test_extensions_utils.py\nindex 98f3834c..762040b5 100644\n--- a/Products/Archetypes/tests/test_extensions_utils.py\n+++ b/Products/Archetypes/tests/test_extensions_utils.py\n@@ -1,16 +1,16 @@\n from cStringIO import StringIO\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.examples.ComplexType import ComplexType\n from Products.Archetypes.Extensions import utils\n \n ComplexType.installMode = (\'indexes\',)\n \n \n-class InstallIndexesTests(ATSiteTestCase):\n+class InstallIndexesTests(ATTestCase):\n \n def tearDown(self):\n- ATSiteTestCase.tearDown(self)\n+ ATTestCase.tearDown(self)\n del ComplexType.schema[\'richtextfield\'].index\n try:\n del ComplexType.schema[\'richtextfield\'].index_method\ndiff --git a/Products/Archetypes/tests/test_externaleditor.py b/Products/Archetypes/tests/test_externaleditor.py\nindex db3996b4..a85fc89e 100644\n--- a/Products/Archetypes/tests/test_externaleditor.py\n+++ b/Products/Archetypes/tests/test_externaleditor.py\n@@ -23,14 +23,14 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes.atapi import *\n from Products.Archetypes.interfaces.base import IBaseUnit\n \n \n-class ExternalEditorTest(ATSiteTestCase):\n+class ExternalEditorTest(ATTestCase):\n \n def testExternalEditor(self):\n # really a test that baseobject.__getitem__ returns something\ndiff --git a/Products/Archetypes/tests/test_fields.py b/Products/Archetypes/tests/test_fields.py\nindex 58376a2b..48f0a436 100644\n--- a/Products/Archetypes/tests/test_fields.py\n+++ b/Products/Archetypes/tests/test_fields.py\n@@ -35,7 +35,7 @@\n \n from plone.app.testing import PLONE_SITE_ID as portal_name\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n@@ -181,11 +181,11 @@ def __call__(self, context):\n # self.form = {}\n \n \n-class ProcessingTest(ATSiteTestCase):\n+class ProcessingTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(Dummy, oid=\'dummy\', context=self.portal,\n schema=schema)\n txt_file.seek(0)\n@@ -554,12 +554,12 @@ def test_mimetype(self):\n self.assertEqual(\'text/html\', mimetype)\n \n \n-class DownloadTest(ATSiteTestCase):\n+class DownloadTest(ATTestCase):\n \n def afterSetUp(self):\n # Set up a content object with a field that has a word\n # document in it\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.dummy = mkDummyInContext(\n Dummy, oid=\'dummy\', context=self.portal, schema=schema)\n self.field = self.dummy.getField(\'textfield\')\ndiff --git a/Products/Archetypes/tests/test_file_upload.py b/Products/Archetypes/tests/test_file_upload.py\nindex 14ef8e59..461f6764 100644\n--- a/Products/Archetypes/tests/test_file_upload.py\n+++ b/Products/Archetypes/tests/test_file_upload.py\n@@ -27,7 +27,7 @@\n import os\n import unittest\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from OFS.Image import File\n \n from Products.Archetypes.atapi import MetadataStorage, BaseContent\n@@ -60,7 +60,7 @@ def tell(self):\n return self.pos\n \n \n-class FileFieldTest(ATSiteTestCase):\n+class FileFieldTest(ATTestCase):\n \n def afterSetUp(self):\n from Products.Archetypes import Field\ndiff --git a/Products/Archetypes/tests/test_filename.py b/Products/Archetypes/tests/test_filename.py\nindex c57ab425..1bddf375 100644\n--- a/Products/Archetypes/tests/test_filename.py\n+++ b/Products/Archetypes/tests/test_filename.py\n@@ -28,7 +28,7 @@\n import os\n from StringIO import StringIO\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n from Products.Archetypes.tests.test_classgen import Dummy\n@@ -38,7 +38,7 @@\n from Products.Archetypes.atapi import *\n \n \n-class GetFilenameTest(ATSiteTestCase):\n+class GetFilenameTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -106,7 +106,7 @@ def test_filefielduploadwithoutfilename(self):\n self.assertEqual(field.getFilename(obj), \'rest1.tgz\')\n \n \n-class SetFilenameTest(ATSiteTestCase):\n+class SetFilenameTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -161,7 +161,7 @@ def testFieldSetFilename(self):\n self.assertEqual(field2.getFilename(obj), filename2)\n \n \n-class LargeFileTest(ATSiteTestCase):\n+class LargeFileTest(ATTestCase):\n \n def testSetFilenameOfLargeFile(self):\n """Test for https://dev.plone.org/archetypes/ticket/635\n@@ -175,7 +175,7 @@ def testSetFilenameOfLargeFile(self):\n self.assertEqual(obj.getBody().size, 140000)\n \n \n-class StrangeIdTest(ATSiteTestCase):\n+class StrangeIdTest(ATTestCase):\n \n def test_strangeUnallowedIds(self):\n """ Certain IDs used to give an error and are unusable\ndiff --git a/Products/Archetypes/tests/test_functional.py b/Products/Archetypes/tests/test_functional.py\nindex 4c1f2e11..0da3a44f 100644\n--- a/Products/Archetypes/tests/test_functional.py\n+++ b/Products/Archetypes/tests/test_functional.py\n@@ -156,7 +156,7 @@ def test_id_change_with_without_marker(self):\n except (AttributeError, KeyError):\n pass\n \n- auto_id = \'orig_id\'\n+ auto_id = \'orig_id_2\'\n \n # create an object with an autogenerated id\n response = self.publish(self.folder_path +\ndiff --git a/Products/Archetypes/tests/test_index.py b/Products/Archetypes/tests/test_index.py\nindex d3c8e4e8..53a41efc 100644\n--- a/Products/Archetypes/tests/test_index.py\n+++ b/Products/Archetypes/tests/test_index.py\n@@ -25,13 +25,13 @@\n \n import time\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.CMFCore.utils import getToolByName\n from Products.Archetypes.tests.utils import makeContent\n from Products.ZCatalog.ZCatalog import manage_addZCatalog\n \n \n-class ETagTest(ATSiteTestCase):\n+class ETagTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\n@@ -70,7 +70,7 @@ def test_etag_update_on_processform(self):\n self.assertFalse(before == after)\n \n \n-class ReindexTest(ATSiteTestCase):\n+class ReindexTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\n@@ -88,7 +88,7 @@ def test_reindex_unindexes_old(self):\n self.assertEqual(len(ct(SearchableText=\'Mosquito\')), 0)\n \n \n-class MultiplexTest(ATSiteTestCase):\n+class MultiplexTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\ndiff --git a/Products/Archetypes/tests/test_languagevocabulary.py b/Products/Archetypes/tests/test_languagevocabulary.py\nindex c4d15e5c..ff184b9e 100644\n--- a/Products/Archetypes/tests/test_languagevocabulary.py\n+++ b/Products/Archetypes/tests/test_languagevocabulary.py\n@@ -5,7 +5,7 @@\n from Products.Archetypes.atapi import registerType\n from Products.Archetypes.atapi import process_types\n from Products.Archetypes.config import PKG_NAME\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.test_classgen import Dummy\n from plone.registry.interfaces import IRegistry\n from zope.component import getUtility\n@@ -14,10 +14,10 @@\n Dummy.schema = BaseSchema\n \n \n-class LanguageVocabularyTest(ATSiteTestCase):\n+class LanguageVocabularyTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n registerType(Dummy, \'Archetypes\')\n content_types, constructors, ftis = process_types(\n listTypes(), PKG_NAME)\ndiff --git a/Products/Archetypes/tests/test_marshaller.py b/Products/Archetypes/tests/test_marshaller.py\nindex 5a0c5d2a..8bc77134 100644\n--- a/Products/Archetypes/tests/test_marshaller.py\n+++ b/Products/Archetypes/tests/test_marshaller.py\n@@ -28,7 +28,7 @@\n import os\n from OFS.Image import Pdata\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n from Products.Archetypes.tests.utils import aputrequest\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n@@ -37,7 +37,7 @@\n from Products.Archetypes.examples.DDocument import DDocument\n \n \n-class MarshallerTests(ATSiteTestCase):\n+class MarshallerTests(ATTestCase):\n \n # XXX this test is fu... up the machine by eating all memory\n def XXX_test_textFieldObjectWordReplace(self):\ndiff --git a/Products/Archetypes/tests/test_metadata.py b/Products/Archetypes/tests/test_metadata.py\nindex 18132f15..91558281 100644\n--- a/Products/Archetypes/tests/test_metadata.py\n+++ b/Products/Archetypes/tests/test_metadata.py\n@@ -26,7 +26,7 @@\n from Acquisition import aq_base\n from Acquisition import aq_parent\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.tests.utils import gen_class\n from Products.Archetypes.tests.test_classgen import Dummy\n@@ -115,10 +115,10 @@ class DummyFolder(BaseFolder):\n portal_membership = DummyPortalMembership()\n \n \n-class ExtensibleMetadataTest(ATSiteTestCase):\n+class ExtensibleMetadataTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(klass=Dummy, oid=\'dummy\',\n context=self.portal, schema=schema)\n # to enable overrideDiscussionFor\n@@ -175,10 +175,10 @@ def testMetaFields(self):\n \'isMetadata not set correctly for field %s.\' % meta)\n \n \n-class ExtMetadataContextTest(ATSiteTestCase):\n+class ExtMetadataContextTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(klass=Dummy, oid=\'dummy\',\n context=self.portal, schema=schema)\n gen_class(DummyFolder)\n@@ -219,7 +219,7 @@ def testIsParent(self):\n \'Some tests will give you false results!\'))\n \n \n-class ExtMetadataDefaultLanguageTest(ATSiteTestCase):\n+class ExtMetadataDefaultLanguageTest(ATTestCase):\n \n def testDefaultLanguage(self):\n # This is handled at creation time, so the prop must be set\n@@ -230,7 +230,7 @@ def testDefaultLanguage(self):\n self.assertEqual(dummy.Language(), config.LANGUAGE_DEFAULT)\n \n \n-class ExtMetadataSetFormatTest(ATSiteTestCase):\n+class ExtMetadataSetFormatTest(ATTestCase):\n \n value = "fooooo"\n filename = \'foo.txt\'\n@@ -328,7 +328,7 @@ def testChangesOnFieldChangesObject(self):\n self.assertEqual(pfield.getContentType(dummy), \'image/jpeg\')\n \n \n-class TimeZoneTest(ATSiteTestCase):\n+class TimeZoneTest(ATTestCase):\n \n def _makeDummyContent(self, name):\n return mkDummyInContext(\ndiff --git a/Products/Archetypes/tests/test_referenceCatalog.py b/Products/Archetypes/tests/test_referenceCatalog.py\nindex a92144e2..86e43900 100644\n--- a/Products/Archetypes/tests/test_referenceCatalog.py\n+++ b/Products/Archetypes/tests/test_referenceCatalog.py\n@@ -30,7 +30,7 @@\n from plone.indexer.interfaces import IIndexableObject\n from Products.ZCatalog.interfaces import IZCatalog\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes import config\n@@ -67,7 +67,7 @@ def getId(self):\n return self.id\n \n \n-class ReferenceCatalogTests(ATSiteTestCase):\n+class ReferenceCatalogTests(ATTestCase):\n \n def afterSetUp(self):\n # register the test class as indexable with plone.indexer default\ndiff --git a/Products/Archetypes/tests/test_referenceable.py b/Products/Archetypes/tests/test_referenceable.py\nindex 500e397e..89094830 100644\n--- a/Products/Archetypes/tests/test_referenceable.py\n+++ b/Products/Archetypes/tests/test_referenceable.py\n@@ -26,7 +26,7 @@\n from Acquisition import aq_base\n import transaction\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes.config import REFERENCE_CATALOG, UID_CATALOG, UUID_ATTR\n@@ -35,7 +35,7 @@\n from plone.uuid.interfaces import IUUIDAware, IUUID\n \n \n-class SimpleFolderReferenceableTests(ATSiteTestCase):\n+class SimpleFolderReferenceableTests(ATTestCase):\n """ Test referencable behaviour with folders """\n \n FOLDER_TYPE = \'SimpleFolder\'\n@@ -460,6 +460,7 @@ def test_folderishDeleteCleanup(self):\n \n a = makeContent(folder, portal_type=\'DDocument\', title=\'Foo\', id=\'a\')\n b = makeContent(folder, portal_type=\'DDocument\', title=\'Bar\', id=\'b\')\n+\n a.addReference(b, "KnowsAbout")\n \n # Again, lets assert the sanity of the UID and Ref Catalogs\n@@ -479,6 +480,7 @@ def test_folderishDeleteCleanup(self):\n \n # Now Kill the folder and make sure it all went away\n self.folder._delObject("reftest")\n+\n self.verifyBrains()\n \n uids = rc.uniqueValuesFor(\'UID\')\ndiff --git a/Products/Archetypes/tests/test_rename.py b/Products/Archetypes/tests/test_rename.py\nindex 112dc725..49f81546 100644\n--- a/Products/Archetypes/tests/test_rename.py\n+++ b/Products/Archetypes/tests/test_rename.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n \n from Products.Archetypes.tests.utils import makeContent\n from Products.Archetypes.tests.utils import populateFolder\n@@ -109,17 +109,17 @@ def manage_afterClone(self, item):\n }\n \n \n-class RenameTests(ATSiteTestCase):\n+class RenameTests(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n for c in counts:\n c.reset()\n for name, meth in meths.items():\n wrap_method(BaseContent, name, meth, pattern=\'__test_%s__\')\n \n def beforeTearDown(self):\n- ATSiteTestCase.beforeTearDown(self)\n+ ATTestCase.beforeTearDown(self)\n for name in meths.keys():\n unwrap_method(BaseContent, name)\n \ndiff --git a/Products/Archetypes/tests/test_schemata.py b/Products/Archetypes/tests/test_schemata.py\nindex d4f3129d..0f146b16 100644\n--- a/Products/Archetypes/tests/test_schemata.py\n+++ b/Products/Archetypes/tests/test_schemata.py\n@@ -25,7 +25,7 @@\n \n import operator\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.atapi import BaseSchema, BaseContent, registerType, \\\n process_types, listTypes, StringWidget\n from Products.Archetypes.config import PKG_NAME\n@@ -42,7 +42,7 @@ class Dummy(BaseContent):\n schema = schema\n \n \n-class SchemataTest(ATSiteTestCase):\n+class SchemataTest(ATTestCase):\n \n def afterSetUp(self):\n registerType(Dummy, \'Archetypes\')\ndiff --git a/Products/Archetypes/tests/test_security.py b/Products/Archetypes/tests/test_security.py\nindex 0bbeff6a..2b5f54f2 100644\n--- a/Products/Archetypes/tests/test_security.py\n+++ b/Products/Archetypes/tests/test_security.py\n@@ -1,19 +1,19 @@\n import textwrap\n from AccessControl import Unauthorized\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes.Storage import AttributeStorage\n from Products.Archetypes.examples.SimpleType import TestView, TestWrite\n \n \n-class AttributeProtectionTest(ATSiteTestCase):\n+class AttributeProtectionTest(ATTestCase):\n \n _type = \'SimpleProtectedType\'\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.setRoles([\'Manager\'])\n self.portal.invokeFactory(\'Folder\', \'test_folder_\')\n self.folder = self.portal.test_folder_\ndiff --git a/Products/Archetypes/tests/test_templatemixin.py b/Products/Archetypes/tests/test_templatemixin.py\nindex 5cd4c348..4ff99b9b 100644\n--- a/Products/Archetypes/tests/test_templatemixin.py\n+++ b/Products/Archetypes/tests/test_templatemixin.py\n@@ -24,12 +24,12 @@\n ##########################################################################\n \n from Products.Archetypes.config import TOOL_NAME\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.TemplateMixin import TemplateMixin\n from Products.CMFCore.utils import getToolByName\n \n \n-class TemplateMixinTest(ATSiteTestCase):\n+class TemplateMixinTest(ATTestCase):\n \n def test_isTemplateEnabled(self):\n at = getToolByName(self.portal, TOOL_NAME)\ndiff --git a/Products/Archetypes/tests/test_unicode.py b/Products/Archetypes/tests/test_unicode.py\nindex da852ff5..1d032a43 100644\n--- a/Products/Archetypes/tests/test_unicode.py\n+++ b/Products/Archetypes/tests/test_unicode.py\n@@ -29,8 +29,8 @@\n \n from Testing import ZopeTestCase\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n-from test_classgen import Dummy\n+from Products.Archetypes.tests.attestcase import ATTestCase\n+from Products.Archetypes.tests.test_classgen import Dummy\n \n from Products.Archetypes.atapi import *\n from Products.PortalTransforms.data import datastream\n@@ -49,7 +49,7 @@ def convertTo(self, target_mimetype, orig, data=None, object=None, **kwargs):\n return data\n \n \n-class UnicodeStringFieldTest(ATSiteTestCase):\n+class UnicodeStringFieldTest(ATTestCase):\n \n def test_set(self):\n instance = Dummy()\n@@ -65,7 +65,7 @@ def test_set(self):\n self.assertEqual(f.get(instance, encoding="ISO-8859-1"), \'h\xe9h\xe9h\xe9\')\n \n \n-class UnicodeLinesFieldTest(ATSiteTestCase):\n+class UnicodeLinesFieldTest(ATTestCase):\n \n def test_set1(self):\n instance = Dummy()\n@@ -98,7 +98,7 @@ def test_set2(self):\n self.assertEqual(f.get(instance, encoding="ISO-8859-1"), iso)\n \n \n-class UnicodeTextFieldTest(ATSiteTestCase):\n+class UnicodeTextFieldTest(ATTestCase):\n \n def test_set(self):\n instance = Dummy()\n@@ -114,7 +114,7 @@ def test_set(self):\n self.assertEqual(f.getRaw(instance, encoding="ISO-8859-1"), \'h\xe9h\xe9h\xe9\')\n \n \n-class UnicodeBaseUnitTest(ATSiteTestCase):\n+class UnicodeBaseUnitTest(ATTestCase):\n \n def afterSetUp(self):\n self.instance = Dummy().__of__(self.portal)\ndiff --git a/Products/Archetypes/tests/test_update_schema.py b/Products/Archetypes/tests/test_update_schema.py\nindex 1f38d630..a1c6859b 100644\n--- a/Products/Archetypes/tests/test_update_schema.py\n+++ b/Products/Archetypes/tests/test_update_schema.py\n@@ -27,7 +27,7 @@\n \n from ZPublisher.HTTPRequest import HTTPRequest\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.atapi import TextField, BaseSchema, Schema, BaseContent\n \n@@ -57,10 +57,10 @@ class Dummy2(BaseContent):\n pass\n \n \n-class TestUpdateSchema(ATSiteTestCase):\n+class TestUpdateSchema(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.attool = self.portal.archetype_tool\n # Calling mkDummyInContext adds content, but also registers\n # our classes and adds a copy of the schema.\n@@ -211,7 +211,7 @@ def types_to_update(self):\n return [ti[0] for ti in self.attool.getChangedSchema() if ti[1]]\n \n \n-class TestBasicSchemaUpdate(ATSiteTestCase):\n+class TestBasicSchemaUpdate(ATTestCase):\n """Tests for update schema behavior which depend only on the basic\n types, and examine baseline behavior when no real schema changes have\n happened."""\ndiff --git a/Products/Archetypes/tests/utils.py b/Products/Archetypes/tests/utils.py\nindex a5c9d21f..8f9fc9ca 100644\n--- a/Products/Archetypes/tests/utils.py\n+++ b/Products/Archetypes/tests/utils.py\n@@ -39,6 +39,7 @@\n from Products.Archetypes.atapi import listTypes\n from Products.Archetypes.atapi import BaseContent\n from Products.Archetypes.config import PKG_NAME\n+from Products.Archetypes.utils import shasattr\n \n logger = logging.getLogger(\'Archetypes\')\n \n@@ -63,6 +64,8 @@ def mkDummyInContext(klass, oid, context, schema=None):\n \n \n def makeContent(container, portal_type, id=\'document\', **kw):\n+ if shasattr(container, id):\n+ return getattr(container, id)\n container.invokeFactory(type_name=portal_type, id=id)\n return getattr(container, id)\n \n' - -Repository: Products.Archetypes - - -Branch: refs/heads/master -Date: 2018-10-03T12:24:27+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/57190bb507d7e5cf6e46db8b0cd81d73e922c932 - -fix referenceable tests - -Files changed: -M Products/Archetypes/tests/test_referenceable.py - -b'diff --git a/Products/Archetypes/tests/test_referenceable.py b/Products/Archetypes/tests/test_referenceable.py\nindex 89094830..a5d54f78 100644\n--- a/Products/Archetypes/tests/test_referenceable.py\n+++ b/Products/Archetypes/tests/test_referenceable.py\n@@ -405,6 +405,9 @@ def test_singleReference(self):\n b = makeContent(self.folder, portal_type=\'DDocument\',\n title=\'Foo\', id=\'b\')\n \n+ # cleanup\n+ a.deleteReferences()\n+ \n # Add the same ref twice\n a.addReference(b, "KnowsAbout")\n a.addReference(b, "KnowsAbout")\n@@ -424,6 +427,9 @@ def test_multipleReferences(self):\n b = makeContent(self.folder, portal_type=\'DDocument\',\n title=\'Foo\', id=\'b\')\n \n+ # cleanup\n+ a.deleteReferences()\n+\n # Add the same ref twice\n a.addReference(b, "KnowsAbout", updateReferences=False)\n a.addReference(b, "KnowsAbout", updateReferences=False)\n@@ -443,6 +449,9 @@ def test_hasRelationship(self):\n c = makeContent(self.folder, portal_type=\'DDocument\',\n title=\'Foo\', id=\'c\')\n \n+ # cleanup\n+ a.deleteReferences()\n+\n # Two made up kinda refs\n a.addReference(b, "KnowsAbout")\n \n@@ -466,13 +475,12 @@ def test_folderishDeleteCleanup(self):\n # Again, lets assert the sanity of the UID and Ref Catalogs\n uc = self.portal.uid_catalog\n rc = self.portal.reference_catalog\n-\n+ \n uids = uc.uniqueValuesFor(\'UID\')\n self.assertTrue(a.UID() in uids, (a.UID(), uids))\n self.assertTrue(b.UID() in uids, (b.UID(), uids))\n \n- uids = rc.uniqueValuesFor(\'UID\')\n- refs = rc(dict(UID=uids))\n+ refs = rc(dict(sourceUID=a.UID()))\n self.assertEqual(len(refs), 1)\n ref = refs[0].getObject()\n self.assertEqual(ref.targetUID, b.UID())\n@@ -483,7 +491,7 @@ def test_folderishDeleteCleanup(self):\n \n self.verifyBrains()\n \n- uids = rc.uniqueValuesFor(\'UID\')\n+ uids = rc(dict(sourceUID=a.UID()))\n self.assertEqual(len(uids), 0)\n \n def test_reindexUIDCatalog(self):\n' - -Repository: Products.Archetypes - - -Branch: refs/heads/master -Date: 2018-10-03T12:37:08+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/a6606cdc7e9baabe8e79b4a214f7a0fd45e41b37 - -fix permission test - -Files changed: -M Products/Archetypes/tests/test_baseobject.py - -b"diff --git a/Products/Archetypes/tests/test_baseobject.py b/Products/Archetypes/tests/test_baseobject.py\nindex 79bee52a..5bc2eb19 100644\n--- a/Products/Archetypes/tests/test_baseobject.py\n+++ b/Products/Archetypes/tests/test_baseobject.py\n@@ -140,6 +140,8 @@ def test_authenticatedContentType(self):\n \n dummy = self._dummy\n dummy.manage_permission(view, ('Manager',), False)\n+ \n+ self.setRoles(('Anonymous',))\n # dummy.content_type in a Python Script\n self.assertRaises(Unauthorized, guarded_getattr, dummy, 'content_type')\n \n" - -Repository: Products.Archetypes - - -Branch: refs/heads/master -Date: 2018-10-03T14:15:57+02:00 +Date: 2018-10-04T00:21:00+02:00 Author: Philip Bauer (pbauer) -Commit: https://github.com/plone/Products.Archetypes/commit/950030b56d3f408c77f83793d197c171da2b0767 - -remove baseclass that is removed in zope4 - -Files changed: -M Products/Archetypes/BaseContent.py -M Products/Archetypes/interfaces/base.py - -b'diff --git a/Products/Archetypes/BaseContent.py b/Products/Archetypes/BaseContent.py\nindex 4e2df6ac..80b234f5 100644\n--- a/Products/Archetypes/BaseContent.py\n+++ b/Products/Archetypes/BaseContent.py\n@@ -8,7 +8,6 @@\n \n from AccessControl import ClassSecurityInfo\n from App.class_init import InitializeClass\n-from OFS.History import Historical\n from Products.CMFCore import permissions\n from Products.CMFCore.PortalContent import PortalContent\n from OFS.PropertyManager import PropertyManager\n@@ -25,8 +24,7 @@\n @implementer(IBaseContent, IReferenceable)\n class BaseContentMixin(CatalogMultiplex,\n BaseObject,\n- PortalContent,\n- Historical):\n+ PortalContent):\n """A not-so-basic CMF Content implementation that doesn\'t\n include Dublin Core Metadata"""\n \ndiff --git a/Products/Archetypes/interfaces/base.py b/Products/Archetypes/interfaces/base.py\nindex e88d8fce..007bafd0 100644\n--- a/Products/Archetypes/interfaces/base.py\n+++ b/Products/Archetypes/interfaces/base.py\n@@ -141,7 +141,6 @@ class IBaseContent(IBaseObject):\n Products.Archetypes.Referenceable.Referenceable\n Products.Archetypes.CatalogMultiplex.CatalogMultiplex\n Products.CMFCore.PortalContent.PortalContent\n- OFS.History.Historicall\n """\n \n \n' - -Repository: Products.Archetypes - - -Branch: refs/heads/master -Date: 2018-10-03T23:43:17+02:00 -Author: Peter Mathis (petschki) -Commit: https://github.com/plone/Products.Archetypes/commit/4b7ba9ce4b07c32e01204f0e11ea25a9a1bf2e6a +Commit: https://github.com/plone/plone.app.robotframework/commit/788a1bf1e1badc43a472ed0eabcd98c8c97161f7 -Merge pull request #113 from plone/testlayer-fix +Merge pull request #86 from plone/jo-85 -Fix testlayer mess +Default to picking a free port Files changed: -A news/113.bugfix -M Products/Archetypes/BaseContent.py -M Products/Archetypes/interfaces/base.py -M Products/Archetypes/tests/events.txt -M Products/Archetypes/tests/folder_marshall.txt -M Products/Archetypes/tests/test_annotation.py -M Products/Archetypes/tests/test_baseobject.py -M Products/Archetypes/tests/test_baseschema.py -M Products/Archetypes/tests/test_baseunit.py -M Products/Archetypes/tests/test_browser_utils.py -M Products/Archetypes/tests/test_classgen.py -M Products/Archetypes/tests/test_construction.py -M Products/Archetypes/tests/test_contenttype.py -M Products/Archetypes/tests/test_copying.py -M Products/Archetypes/tests/test_datecomponents.py -M Products/Archetypes/tests/test_default_mimetypes.py -M Products/Archetypes/tests/test_event.py -M Products/Archetypes/tests/test_extensions_utils.py -M Products/Archetypes/tests/test_externaleditor.py -M Products/Archetypes/tests/test_fields.py -M Products/Archetypes/tests/test_file_upload.py -M Products/Archetypes/tests/test_filename.py -M Products/Archetypes/tests/test_functional.py -M Products/Archetypes/tests/test_index.py -M Products/Archetypes/tests/test_languagevocabulary.py -M Products/Archetypes/tests/test_marshaller.py -M Products/Archetypes/tests/test_metadata.py -M Products/Archetypes/tests/test_pawidgets.py -M Products/Archetypes/tests/test_referenceCatalog.py -M Products/Archetypes/tests/test_referenceable.py -M Products/Archetypes/tests/test_rename.py -M Products/Archetypes/tests/test_schemata.py -M Products/Archetypes/tests/test_security.py -M Products/Archetypes/tests/test_templatemixin.py -M Products/Archetypes/tests/test_unicode.py -M Products/Archetypes/tests/test_update_schema.py -M Products/Archetypes/tests/translate.txt -M Products/Archetypes/tests/traversal.txt -M Products/Archetypes/tests/traversal_4981.txt -M Products/Archetypes/tests/utils.py -M Products/Archetypes/tests/webdav_operations.txt -D Products/Archetypes/tests/atsitetestcase.py +M CHANGES.rst +M src/plone/app/robotframework/variables.py -b'diff --git a/Products/Archetypes/BaseContent.py b/Products/Archetypes/BaseContent.py\nindex 4e2df6ac..80b234f5 100644\n--- a/Products/Archetypes/BaseContent.py\n+++ b/Products/Archetypes/BaseContent.py\n@@ -8,7 +8,6 @@\n \n from AccessControl import ClassSecurityInfo\n from App.class_init import InitializeClass\n-from OFS.History import Historical\n from Products.CMFCore import permissions\n from Products.CMFCore.PortalContent import PortalContent\n from OFS.PropertyManager import PropertyManager\n@@ -25,8 +24,7 @@\n @implementer(IBaseContent, IReferenceable)\n class BaseContentMixin(CatalogMultiplex,\n BaseObject,\n- PortalContent,\n- Historical):\n+ PortalContent):\n """A not-so-basic CMF Content implementation that doesn\'t\n include Dublin Core Metadata"""\n \ndiff --git a/Products/Archetypes/interfaces/base.py b/Products/Archetypes/interfaces/base.py\nindex e88d8fce..007bafd0 100644\n--- a/Products/Archetypes/interfaces/base.py\n+++ b/Products/Archetypes/interfaces/base.py\n@@ -141,7 +141,6 @@ class IBaseContent(IBaseObject):\n Products.Archetypes.Referenceable.Referenceable\n Products.Archetypes.CatalogMultiplex.CatalogMultiplex\n Products.CMFCore.PortalContent.PortalContent\n- OFS.History.Historicall\n """\n \n \ndiff --git a/Products/Archetypes/tests/atsitetestcase.py b/Products/Archetypes/tests/atsitetestcase.py\ndeleted file mode 100644\nindex 4bcf690c..00000000\n--- a/Products/Archetypes/tests/atsitetestcase.py\n+++ /dev/null\n@@ -1,3 +0,0 @@\n-from Products.Archetypes.tests.attestcase import ATTestCase as ATSiteTestCase\n-\n-ATFunctionalSiteTestCase = ATSiteTestCase\ndiff --git a/Products/Archetypes/tests/events.txt b/Products/Archetypes/tests/events.txt\nindex 4d7f9026..70c4c0e7 100644\n--- a/Products/Archetypes/tests/events.txt\n+++ b/Products/Archetypes/tests/events.txt\n@@ -156,3 +156,9 @@ Test that a MKCOL also fires an IWebDAVObjectInitialized event:\n \n Clean up\n >>> AppZapper().clear()\n+\n+ >>> del folder[\'a\']\n+ >>> del folder[\'f1\']\n+\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/folder_marshall.txt b/Products/Archetypes/tests/folder_marshall.txt\nindex 6b818d34..a5512205 100644\n--- a/Products/Archetypes/tests/folder_marshall.txt\n+++ b/Products/Archetypes/tests/folder_marshall.txt\n@@ -197,6 +197,10 @@ like a normal resource:\n \n Clean up\n \n+ >>> AppZapper().clear()\n+\n >>> del portal[\'simple_folder\']\n >>> del portal[\'simple_btree_folder\']\n- >>> AppZapper().clear()\n+\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/test_annotation.py b/Products/Archetypes/tests/test_annotation.py\nindex dc07ee2b..2e29d53c 100644\n--- a/Products/Archetypes/tests/test_annotation.py\n+++ b/Products/Archetypes/tests/test_annotation.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.atapi import BaseSchema, Schema, StringField, \\\n AnnotationStorage, MetadataAnnotationStorage, AT_MD_STORAGE, \\\n getAnnotation, AT_ANN_STORAGE\n@@ -52,7 +52,7 @@ def gen_anndummy():\n gen_class(AnnDummy, annschema)\n \n \n-class AnnotationTest(ATSiteTestCase):\n+class AnnotationTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -102,7 +102,7 @@ def test_del(self):\n self.assertFalse(ann.hasSubkey(\'test\', subkey=\'testsub\'))\n \n \n-class MetadataAnnotationStorageTest(ATSiteTestCase):\n+class MetadataAnnotationStorageTest(ATTestCase):\n \n def afterSetUp(self):\n gen_anndummy()\n@@ -128,7 +128,7 @@ def test_gestset(self):\n self.assertEqual(ann.getSubkey(AT_MD_STORAGE, subkey=\'meta\'), \'egg\')\n \n \n-class AnnotationStorageTest(ATSiteTestCase):\n+class AnnotationStorageTest(ATTestCase):\n \n def afterSetUp(self):\n gen_anndummy()\ndiff --git a/Products/Archetypes/tests/test_baseobject.py b/Products/Archetypes/tests/test_baseobject.py\nindex 063a07b8..5bc2eb19 100644\n--- a/Products/Archetypes/tests/test_baseobject.py\n+++ b/Products/Archetypes/tests/test_baseobject.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n \n from Products.Archetypes import PloneMessageFactory as _\n@@ -70,10 +70,10 @@ def getCharset(self):\n return \'utf-8\'\n \n \n-class BaseObjectTest(ATSiteTestCase):\n+class BaseObjectTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(Dummy, oid=\'dummy\', context=self.portal,\n schema=schema)\n \n@@ -140,6 +140,8 @@ def test_authenticatedContentType(self):\n \n dummy = self._dummy\n dummy.manage_permission(view, (\'Manager\',), False)\n+ \n+ self.setRoles((\'Anonymous\',))\n # dummy.content_type in a Python Script\n self.assertRaises(Unauthorized, guarded_getattr, dummy, \'content_type\')\n \ndiff --git a/Products/Archetypes/tests/test_baseschema.py b/Products/Archetypes/tests/test_baseschema.py\nindex c29ed853..d35dd218 100644\n--- a/Products/Archetypes/tests/test_baseschema.py\n+++ b/Products/Archetypes/tests/test_baseschema.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n \n # need this to initialize new BU for tests\n from Products.Archetypes.tests.test_classgen import Dummy\n@@ -44,10 +44,10 @@\n EmptyValidator.appendSufficient(\'isEmpty\')\n \n \n-class BaseSchemaTest(ATSiteTestCase):\n+class BaseSchemaTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n atapi.registerType(Dummy, \'Archetypes\')\n content_types, constructors, ftis = atapi.process_types(\n atapi.listTypes(), PKG_NAME)\ndiff --git a/Products/Archetypes/tests/test_baseunit.py b/Products/Archetypes/tests/test_baseunit.py\nindex 36ffb1ab..f259e4ae 100644\n--- a/Products/Archetypes/tests/test_baseunit.py\n+++ b/Products/Archetypes/tests/test_baseunit.py\n@@ -28,7 +28,7 @@\n import os\n import glob\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n from Products.Archetypes.tests.utils import normalize_html\n from Products.Archetypes.atapi import BaseUnit\n@@ -36,7 +36,7 @@\n from Products.Archetypes.tests.test_classgen import gen_dummy\n \n \n-class BaseUnitTest(ATSiteTestCase):\n+class BaseUnitTest(ATTestCase):\n \n def testSame(self):\n gen_dummy()\ndiff --git a/Products/Archetypes/tests/test_browser_utils.py b/Products/Archetypes/tests/test_browser_utils.py\nindex a405136c..f6fe0ae4 100644\n--- a/Products/Archetypes/tests/test_browser_utils.py\n+++ b/Products/Archetypes/tests/test_browser_utils.py\n@@ -1,11 +1,11 @@\n from zope.component import getMultiAdapter\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.atapi import DisplayList\n from Products.Archetypes.atapi import IntDisplayList\n \n \n-class UtilsMethodsTests(ATSiteTestCase):\n+class UtilsMethodsTests(ATTestCase):\n """Test the different methods in browser.utils view."""\n \n def test_translate_vocab_with_special_chars(self):\ndiff --git a/Products/Archetypes/tests/test_classgen.py b/Products/Archetypes/tests/test_classgen.py\nindex fb0e319a..f7a96d72 100644\n--- a/Products/Archetypes/tests/test_classgen.py\n+++ b/Products/Archetypes/tests/test_classgen.py\n@@ -30,7 +30,7 @@\n from DateTime import DateTime\n from AccessControl import ClassSecurityInfo\n from AccessControl.SecurityInfo import ACCESS_PUBLIC, ACCESS_PRIVATE\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.tests.utils import gen_class\n from Products.Archetypes import atapi\n@@ -128,10 +128,10 @@ def gen_dummy():\n gen_class(Dummy, schema)\n \n \n-class ClassGenTest(ATSiteTestCase):\n+class ClassGenTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(Dummy, oid=\'dummy\',\n context=self.portal,\n schema=schema)\ndiff --git a/Products/Archetypes/tests/test_construction.py b/Products/Archetypes/tests/test_construction.py\nindex 5167e2a4..e04673c4 100644\n--- a/Products/Archetypes/tests/test_construction.py\n+++ b/Products/Archetypes/tests/test_construction.py\n@@ -1,7 +1,7 @@\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n \n \n-class FactoryTest(ATSiteTestCase):\n+class FactoryTest(ATTestCase):\n \n def testSimplePortalType(self):\n self.folder.invokeFactory(id="dummy", type_name="SimpleType")\ndiff --git a/Products/Archetypes/tests/test_contenttype.py b/Products/Archetypes/tests/test_contenttype.py\nindex 05c01ac6..0370301e 100644\n--- a/Products/Archetypes/tests/test_contenttype.py\n+++ b/Products/Archetypes/tests/test_contenttype.py\n@@ -27,7 +27,7 @@\n \n import os\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n # this trigger zope imports\n@@ -38,7 +38,7 @@\n from Products.Archetypes.atapi import *\n \n \n-class GetContentTypeTest(ATSiteTestCase):\n+class GetContentTypeTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -106,7 +106,7 @@ def test_filefielduploadwithoutmime(self):\n self.assertEqual(field.getContentType(obj), \'application/x-tar\')\n \n \n-class SetContentTypeTest(ATSiteTestCase):\n+class SetContentTypeTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\ndiff --git a/Products/Archetypes/tests/test_copying.py b/Products/Archetypes/tests/test_copying.py\nindex c03b0547..276875bd 100644\n--- a/Products/Archetypes/tests/test_copying.py\n+++ b/Products/Archetypes/tests/test_copying.py\n@@ -34,7 +34,7 @@\n from AccessControl.SecurityManagement import newSecurityManager\n from AccessControl.SecurityManagement import noSecurityManager\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from plone.app.testing import SITE_OWNER_NAME as portal_owner\n@@ -45,7 +45,7 @@\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n \n-class CutPasteCopyPasteTests(ATSiteTestCase):\n+class CutPasteCopyPasteTests(ATTestCase):\n \n def test_copy_and_paste(self):\n ffrom = makeContent(\n@@ -76,10 +76,10 @@ def test_cut_and_paste(self):\n self.assertFalse(\'tourist\' not in fto.contentIds())\n \n \n-class PortalCopyTests(ATSiteTestCase):\n+class PortalCopyTests(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.setRoles([\'Manager\'])\n \n imgpath = os.path.join(PACKAGE_HOME, os.pardir, \'tool.gif\')\ndiff --git a/Products/Archetypes/tests/test_datecomponents.py b/Products/Archetypes/tests/test_datecomponents.py\nindex 963eb192..1306dc16 100644\n--- a/Products/Archetypes/tests/test_datecomponents.py\n+++ b/Products/Archetypes/tests/test_datecomponents.py\n@@ -1,4 +1,4 @@\n-from Products.Archetypes.tests.atsitetestcase import ATFunctionalSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Testing import ZopeTestCase as ztc\n import unittest\n import doctest\n@@ -9,6 +9,6 @@ def test_suite():\n return unittest.TestSuite([\n ztc.ZopeDocFileSuite(\'browser/datecomponents.txt\',\n package=\'Products.Archetypes\',\n- test_class=ATFunctionalSiteTestCase,\n+ test_class=ATTestCase,\n optionflags=optionflags),\n ])\ndiff --git a/Products/Archetypes/tests/test_default_mimetypes.py b/Products/Archetypes/tests/test_default_mimetypes.py\nindex 7841a802..95d5103e 100644\n--- a/Products/Archetypes/tests/test_default_mimetypes.py\n+++ b/Products/Archetypes/tests/test_default_mimetypes.py\n@@ -1,11 +1,11 @@\n # test initialisation and setup\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.mimetype_utils import getDefaultContentType\n from Products.Archetypes.mimetype_utils import setDefaultContentType\n \n \n-class TestDefaultMimeTypes(ATSiteTestCase):\n+class TestDefaultMimeTypes(ATTestCase):\n \n def test_ATDocumentDefaultType(self):\n # move portal_properties out of the way. it was not here\ndiff --git a/Products/Archetypes/tests/test_event.py b/Products/Archetypes/tests/test_event.py\nindex 842b4220..f52e45a6 100644\n--- a/Products/Archetypes/tests/test_event.py\n+++ b/Products/Archetypes/tests/test_event.py\n@@ -5,7 +5,7 @@\n from zope.interface import implementer, Interface, directlyProvides\n from zope import component\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests import utils\n \n from zope.publisher.browser import TestRequest\n@@ -72,7 +72,7 @@ def edited_handler(ob, event):\n ob._editedCaught = True\n \n \n-class ValidationEventTests(ATSiteTestCase):\n+class ValidationEventTests(ATTestCase):\n \n def testPreValidatingEvent(self):\n \ndiff --git a/Products/Archetypes/tests/test_extensions_utils.py b/Products/Archetypes/tests/test_extensions_utils.py\nindex 98f3834c..762040b5 100644\n--- a/Products/Archetypes/tests/test_extensions_utils.py\n+++ b/Products/Archetypes/tests/test_extensions_utils.py\n@@ -1,16 +1,16 @@\n from cStringIO import StringIO\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.examples.ComplexType import ComplexType\n from Products.Archetypes.Extensions import utils\n \n ComplexType.installMode = (\'indexes\',)\n \n \n-class InstallIndexesTests(ATSiteTestCase):\n+class InstallIndexesTests(ATTestCase):\n \n def tearDown(self):\n- ATSiteTestCase.tearDown(self)\n+ ATTestCase.tearDown(self)\n del ComplexType.schema[\'richtextfield\'].index\n try:\n del ComplexType.schema[\'richtextfield\'].index_method\ndiff --git a/Products/Archetypes/tests/test_externaleditor.py b/Products/Archetypes/tests/test_externaleditor.py\nindex db3996b4..a85fc89e 100644\n--- a/Products/Archetypes/tests/test_externaleditor.py\n+++ b/Products/Archetypes/tests/test_externaleditor.py\n@@ -23,14 +23,14 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes.atapi import *\n from Products.Archetypes.interfaces.base import IBaseUnit\n \n \n-class ExternalEditorTest(ATSiteTestCase):\n+class ExternalEditorTest(ATTestCase):\n \n def testExternalEditor(self):\n # really a test that baseobject.__getitem__ returns something\ndiff --git a/Products/Archetypes/tests/test_fields.py b/Products/Archetypes/tests/test_fields.py\nindex 58376a2b..48f0a436 100644\n--- a/Products/Archetypes/tests/test_fields.py\n+++ b/Products/Archetypes/tests/test_fields.py\n@@ -35,7 +35,7 @@\n \n from plone.app.testing import PLONE_SITE_ID as portal_name\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n@@ -181,11 +181,11 @@ def __call__(self, context):\n # self.form = {}\n \n \n-class ProcessingTest(ATSiteTestCase):\n+class ProcessingTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(Dummy, oid=\'dummy\', context=self.portal,\n schema=schema)\n txt_file.seek(0)\n@@ -554,12 +554,12 @@ def test_mimetype(self):\n self.assertEqual(\'text/html\', mimetype)\n \n \n-class DownloadTest(ATSiteTestCase):\n+class DownloadTest(ATTestCase):\n \n def afterSetUp(self):\n # Set up a content object with a field that has a word\n # document in it\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.dummy = mkDummyInContext(\n Dummy, oid=\'dummy\', context=self.portal, schema=schema)\n self.field = self.dummy.getField(\'textfield\')\ndiff --git a/Products/Archetypes/tests/test_file_upload.py b/Products/Archetypes/tests/test_file_upload.py\nindex 14ef8e59..461f6764 100644\n--- a/Products/Archetypes/tests/test_file_upload.py\n+++ b/Products/Archetypes/tests/test_file_upload.py\n@@ -27,7 +27,7 @@\n import os\n import unittest\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from OFS.Image import File\n \n from Products.Archetypes.atapi import MetadataStorage, BaseContent\n@@ -60,7 +60,7 @@ def tell(self):\n return self.pos\n \n \n-class FileFieldTest(ATSiteTestCase):\n+class FileFieldTest(ATTestCase):\n \n def afterSetUp(self):\n from Products.Archetypes import Field\ndiff --git a/Products/Archetypes/tests/test_filename.py b/Products/Archetypes/tests/test_filename.py\nindex c57ab425..1bddf375 100644\n--- a/Products/Archetypes/tests/test_filename.py\n+++ b/Products/Archetypes/tests/test_filename.py\n@@ -28,7 +28,7 @@\n import os\n from StringIO import StringIO\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n \n from Products.Archetypes.tests.test_classgen import Dummy\n@@ -38,7 +38,7 @@\n from Products.Archetypes.atapi import *\n \n \n-class GetFilenameTest(ATSiteTestCase):\n+class GetFilenameTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -106,7 +106,7 @@ def test_filefielduploadwithoutfilename(self):\n self.assertEqual(field.getFilename(obj), \'rest1.tgz\')\n \n \n-class SetFilenameTest(ATSiteTestCase):\n+class SetFilenameTest(ATTestCase):\n \n def afterSetUp(self):\n gen_dummy()\n@@ -161,7 +161,7 @@ def testFieldSetFilename(self):\n self.assertEqual(field2.getFilename(obj), filename2)\n \n \n-class LargeFileTest(ATSiteTestCase):\n+class LargeFileTest(ATTestCase):\n \n def testSetFilenameOfLargeFile(self):\n """Test for https://dev.plone.org/archetypes/ticket/635\n@@ -175,7 +175,7 @@ def testSetFilenameOfLargeFile(self):\n self.assertEqual(obj.getBody().size, 140000)\n \n \n-class StrangeIdTest(ATSiteTestCase):\n+class StrangeIdTest(ATTestCase):\n \n def test_strangeUnallowedIds(self):\n """ Certain IDs used to give an error and are unusable\ndiff --git a/Products/Archetypes/tests/test_functional.py b/Products/Archetypes/tests/test_functional.py\nindex 4c1f2e11..0da3a44f 100644\n--- a/Products/Archetypes/tests/test_functional.py\n+++ b/Products/Archetypes/tests/test_functional.py\n@@ -156,7 +156,7 @@ def test_id_change_with_without_marker(self):\n except (AttributeError, KeyError):\n pass\n \n- auto_id = \'orig_id\'\n+ auto_id = \'orig_id_2\'\n \n # create an object with an autogenerated id\n response = self.publish(self.folder_path +\ndiff --git a/Products/Archetypes/tests/test_index.py b/Products/Archetypes/tests/test_index.py\nindex d3c8e4e8..53a41efc 100644\n--- a/Products/Archetypes/tests/test_index.py\n+++ b/Products/Archetypes/tests/test_index.py\n@@ -25,13 +25,13 @@\n \n import time\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.CMFCore.utils import getToolByName\n from Products.Archetypes.tests.utils import makeContent\n from Products.ZCatalog.ZCatalog import manage_addZCatalog\n \n \n-class ETagTest(ATSiteTestCase):\n+class ETagTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\n@@ -70,7 +70,7 @@ def test_etag_update_on_processform(self):\n self.assertFalse(before == after)\n \n \n-class ReindexTest(ATSiteTestCase):\n+class ReindexTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\n@@ -88,7 +88,7 @@ def test_reindex_unindexes_old(self):\n self.assertEqual(len(ct(SearchableText=\'Mosquito\')), 0)\n \n \n-class MultiplexTest(ATSiteTestCase):\n+class MultiplexTest(ATTestCase):\n \n def afterSetUp(self):\n self.setRoles([\'Manager\'])\ndiff --git a/Products/Archetypes/tests/test_languagevocabulary.py b/Products/Archetypes/tests/test_languagevocabulary.py\nindex c4d15e5c..ff184b9e 100644\n--- a/Products/Archetypes/tests/test_languagevocabulary.py\n+++ b/Products/Archetypes/tests/test_languagevocabulary.py\n@@ -5,7 +5,7 @@\n from Products.Archetypes.atapi import registerType\n from Products.Archetypes.atapi import process_types\n from Products.Archetypes.config import PKG_NAME\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.test_classgen import Dummy\n from plone.registry.interfaces import IRegistry\n from zope.component import getUtility\n@@ -14,10 +14,10 @@\n Dummy.schema = BaseSchema\n \n \n-class LanguageVocabularyTest(ATSiteTestCase):\n+class LanguageVocabularyTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n registerType(Dummy, \'Archetypes\')\n content_types, constructors, ftis = process_types(\n listTypes(), PKG_NAME)\ndiff --git a/Products/Archetypes/tests/test_marshaller.py b/Products/Archetypes/tests/test_marshaller.py\nindex 5a0c5d2a..8bc77134 100644\n--- a/Products/Archetypes/tests/test_marshaller.py\n+++ b/Products/Archetypes/tests/test_marshaller.py\n@@ -28,7 +28,7 @@\n import os\n from OFS.Image import Pdata\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n from Products.Archetypes.tests.utils import aputrequest\n from Products.Archetypes.tests.utils import PACKAGE_HOME\n@@ -37,7 +37,7 @@\n from Products.Archetypes.examples.DDocument import DDocument\n \n \n-class MarshallerTests(ATSiteTestCase):\n+class MarshallerTests(ATTestCase):\n \n # XXX this test is fu... up the machine by eating all memory\n def XXX_test_textFieldObjectWordReplace(self):\ndiff --git a/Products/Archetypes/tests/test_metadata.py b/Products/Archetypes/tests/test_metadata.py\nindex 18132f15..91558281 100644\n--- a/Products/Archetypes/tests/test_metadata.py\n+++ b/Products/Archetypes/tests/test_metadata.py\n@@ -26,7 +26,7 @@\n from Acquisition import aq_base\n from Acquisition import aq_parent\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.tests.utils import gen_class\n from Products.Archetypes.tests.test_classgen import Dummy\n@@ -115,10 +115,10 @@ class DummyFolder(BaseFolder):\n portal_membership = DummyPortalMembership()\n \n \n-class ExtensibleMetadataTest(ATSiteTestCase):\n+class ExtensibleMetadataTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(klass=Dummy, oid=\'dummy\',\n context=self.portal, schema=schema)\n # to enable overrideDiscussionFor\n@@ -175,10 +175,10 @@ def testMetaFields(self):\n \'isMetadata not set correctly for field %s.\' % meta)\n \n \n-class ExtMetadataContextTest(ATSiteTestCase):\n+class ExtMetadataContextTest(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self._dummy = mkDummyInContext(klass=Dummy, oid=\'dummy\',\n context=self.portal, schema=schema)\n gen_class(DummyFolder)\n@@ -219,7 +219,7 @@ def testIsParent(self):\n \'Some tests will give you false results!\'))\n \n \n-class ExtMetadataDefaultLanguageTest(ATSiteTestCase):\n+class ExtMetadataDefaultLanguageTest(ATTestCase):\n \n def testDefaultLanguage(self):\n # This is handled at creation time, so the prop must be set\n@@ -230,7 +230,7 @@ def testDefaultLanguage(self):\n self.assertEqual(dummy.Language(), config.LANGUAGE_DEFAULT)\n \n \n-class ExtMetadataSetFormatTest(ATSiteTestCase):\n+class ExtMetadataSetFormatTest(ATTestCase):\n \n value = "fooooo"\n filename = \'foo.txt\'\n@@ -328,7 +328,7 @@ def testChangesOnFieldChangesObject(self):\n self.assertEqual(pfield.getContentType(dummy), \'image/jpeg\')\n \n \n-class TimeZoneTest(ATSiteTestCase):\n+class TimeZoneTest(ATTestCase):\n \n def _makeDummyContent(self, name):\n return mkDummyInContext(\ndiff --git a/Products/Archetypes/tests/test_pawidgets.py b/Products/Archetypes/tests/test_pawidgets.py\nindex 44338997..1b6d2f67 100644\n--- a/Products/Archetypes/tests/test_pawidgets.py\n+++ b/Products/Archetypes/tests/test_pawidgets.py\n@@ -20,12 +20,7 @@\n \n import json\n import mock\n-\n-try:\n- import unittest2 as unittest\n-except ImportError: # pragma: nocover\n- import unittest # pragma: nocover\n- assert unittest # pragma: nocover\n+import unittest\n \n import plone.uuid\n \n@@ -316,6 +311,7 @@ def test_process_form(self):\n # class AjaxSelectWidgetTests(unittest.TestCase):\n \n \n+@unittest.skip("Skipped because of testlayer mess")\n class RelatedItemsWidgetTests(unittest.TestCase):\n \n layer = ZCML_DIRECTIVES\ndiff --git a/Products/Archetypes/tests/test_referenceCatalog.py b/Products/Archetypes/tests/test_referenceCatalog.py\nindex a92144e2..86e43900 100644\n--- a/Products/Archetypes/tests/test_referenceCatalog.py\n+++ b/Products/Archetypes/tests/test_referenceCatalog.py\n@@ -30,7 +30,7 @@\n from plone.indexer.interfaces import IIndexableObject\n from Products.ZCatalog.interfaces import IZCatalog\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes import config\n@@ -67,7 +67,7 @@ def getId(self):\n return self.id\n \n \n-class ReferenceCatalogTests(ATSiteTestCase):\n+class ReferenceCatalogTests(ATTestCase):\n \n def afterSetUp(self):\n # register the test class as indexable with plone.indexer default\ndiff --git a/Products/Archetypes/tests/test_referenceable.py b/Products/Archetypes/tests/test_referenceable.py\nindex 500e397e..a5d54f78 100644\n--- a/Products/Archetypes/tests/test_referenceable.py\n+++ b/Products/Archetypes/tests/test_referenceable.py\n@@ -26,7 +26,7 @@\n from Acquisition import aq_base\n import transaction\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes.config import REFERENCE_CATALOG, UID_CATALOG, UUID_ATTR\n@@ -35,7 +35,7 @@\n from plone.uuid.interfaces import IUUIDAware, IUUID\n \n \n-class SimpleFolderReferenceableTests(ATSiteTestCase):\n+class SimpleFolderReferenceableTests(ATTestCase):\n """ Test referencable behaviour with folders """\n \n FOLDER_TYPE = \'SimpleFolder\'\n@@ -405,6 +405,9 @@ def test_singleReference(self):\n b = makeContent(self.folder, portal_type=\'DDocument\',\n title=\'Foo\', id=\'b\')\n \n+ # cleanup\n+ a.deleteReferences()\n+ \n # Add the same ref twice\n a.addReference(b, "KnowsAbout")\n a.addReference(b, "KnowsAbout")\n@@ -424,6 +427,9 @@ def test_multipleReferences(self):\n b = makeContent(self.folder, portal_type=\'DDocument\',\n title=\'Foo\', id=\'b\')\n \n+ # cleanup\n+ a.deleteReferences()\n+\n # Add the same ref twice\n a.addReference(b, "KnowsAbout", updateReferences=False)\n a.addReference(b, "KnowsAbout", updateReferences=False)\n@@ -443,6 +449,9 @@ def test_hasRelationship(self):\n c = makeContent(self.folder, portal_type=\'DDocument\',\n title=\'Foo\', id=\'c\')\n \n+ # cleanup\n+ a.deleteReferences()\n+\n # Two made up kinda refs\n a.addReference(b, "KnowsAbout")\n \n@@ -460,18 +469,18 @@ def test_folderishDeleteCleanup(self):\n \n a = makeContent(folder, portal_type=\'DDocument\', title=\'Foo\', id=\'a\')\n b = makeContent(folder, portal_type=\'DDocument\', title=\'Bar\', id=\'b\')\n+\n a.addReference(b, "KnowsAbout")\n \n # Again, lets assert the sanity of the UID and Ref Catalogs\n uc = self.portal.uid_catalog\n rc = self.portal.reference_catalog\n-\n+ \n uids = uc.uniqueValuesFor(\'UID\')\n self.assertTrue(a.UID() in uids, (a.UID(), uids))\n self.assertTrue(b.UID() in uids, (b.UID(), uids))\n \n- uids = rc.uniqueValuesFor(\'UID\')\n- refs = rc(dict(UID=uids))\n+ refs = rc(dict(sourceUID=a.UID()))\n self.assertEqual(len(refs), 1)\n ref = refs[0].getObject()\n self.assertEqual(ref.targetUID, b.UID())\n@@ -479,9 +488,10 @@ def test_folderishDeleteCleanup(self):\n \n # Now Kill the folder and make sure it all went away\n self.folder._delObject("reftest")\n+\n self.verifyBrains()\n \n- uids = rc.uniqueValuesFor(\'UID\')\n+ uids = rc(dict(sourceUID=a.UID()))\n self.assertEqual(len(uids), 0)\n \n def test_reindexUIDCatalog(self):\ndiff --git a/Products/Archetypes/tests/test_rename.py b/Products/Archetypes/tests/test_rename.py\nindex 112dc725..49f81546 100644\n--- a/Products/Archetypes/tests/test_rename.py\n+++ b/Products/Archetypes/tests/test_rename.py\n@@ -23,7 +23,7 @@\n #\n ##########################################################################\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n \n from Products.Archetypes.tests.utils import makeContent\n from Products.Archetypes.tests.utils import populateFolder\n@@ -109,17 +109,17 @@ def manage_afterClone(self, item):\n }\n \n \n-class RenameTests(ATSiteTestCase):\n+class RenameTests(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n for c in counts:\n c.reset()\n for name, meth in meths.items():\n wrap_method(BaseContent, name, meth, pattern=\'__test_%s__\')\n \n def beforeTearDown(self):\n- ATSiteTestCase.beforeTearDown(self)\n+ ATTestCase.beforeTearDown(self)\n for name in meths.keys():\n unwrap_method(BaseContent, name)\n \ndiff --git a/Products/Archetypes/tests/test_schemata.py b/Products/Archetypes/tests/test_schemata.py\nindex d4f3129d..0f146b16 100644\n--- a/Products/Archetypes/tests/test_schemata.py\n+++ b/Products/Archetypes/tests/test_schemata.py\n@@ -25,7 +25,7 @@\n \n import operator\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.atapi import BaseSchema, BaseContent, registerType, \\\n process_types, listTypes, StringWidget\n from Products.Archetypes.config import PKG_NAME\n@@ -42,7 +42,7 @@ class Dummy(BaseContent):\n schema = schema\n \n \n-class SchemataTest(ATSiteTestCase):\n+class SchemataTest(ATTestCase):\n \n def afterSetUp(self):\n registerType(Dummy, \'Archetypes\')\ndiff --git a/Products/Archetypes/tests/test_security.py b/Products/Archetypes/tests/test_security.py\nindex 0bbeff6a..2b5f54f2 100644\n--- a/Products/Archetypes/tests/test_security.py\n+++ b/Products/Archetypes/tests/test_security.py\n@@ -1,19 +1,19 @@\n import textwrap\n from AccessControl import Unauthorized\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import makeContent\n \n from Products.Archetypes.Storage import AttributeStorage\n from Products.Archetypes.examples.SimpleType import TestView, TestWrite\n \n \n-class AttributeProtectionTest(ATSiteTestCase):\n+class AttributeProtectionTest(ATTestCase):\n \n _type = \'SimpleProtectedType\'\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.setRoles([\'Manager\'])\n self.portal.invokeFactory(\'Folder\', \'test_folder_\')\n self.folder = self.portal.test_folder_\ndiff --git a/Products/Archetypes/tests/test_templatemixin.py b/Products/Archetypes/tests/test_templatemixin.py\nindex 5cd4c348..4ff99b9b 100644\n--- a/Products/Archetypes/tests/test_templatemixin.py\n+++ b/Products/Archetypes/tests/test_templatemixin.py\n@@ -24,12 +24,12 @@\n ##########################################################################\n \n from Products.Archetypes.config import TOOL_NAME\n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.TemplateMixin import TemplateMixin\n from Products.CMFCore.utils import getToolByName\n \n \n-class TemplateMixinTest(ATSiteTestCase):\n+class TemplateMixinTest(ATTestCase):\n \n def test_isTemplateEnabled(self):\n at = getToolByName(self.portal, TOOL_NAME)\ndiff --git a/Products/Archetypes/tests/test_unicode.py b/Products/Archetypes/tests/test_unicode.py\nindex da852ff5..1d032a43 100644\n--- a/Products/Archetypes/tests/test_unicode.py\n+++ b/Products/Archetypes/tests/test_unicode.py\n@@ -29,8 +29,8 @@\n \n from Testing import ZopeTestCase\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n-from test_classgen import Dummy\n+from Products.Archetypes.tests.attestcase import ATTestCase\n+from Products.Archetypes.tests.test_classgen import Dummy\n \n from Products.Archetypes.atapi import *\n from Products.PortalTransforms.data import datastream\n@@ -49,7 +49,7 @@ def convertTo(self, target_mimetype, orig, data=None, object=None, **kwargs):\n return data\n \n \n-class UnicodeStringFieldTest(ATSiteTestCase):\n+class UnicodeStringFieldTest(ATTestCase):\n \n def test_set(self):\n instance = Dummy()\n@@ -65,7 +65,7 @@ def test_set(self):\n self.assertEqual(f.get(instance, encoding="ISO-8859-1"), \'h\xe9h\xe9h\xe9\')\n \n \n-class UnicodeLinesFieldTest(ATSiteTestCase):\n+class UnicodeLinesFieldTest(ATTestCase):\n \n def test_set1(self):\n instance = Dummy()\n@@ -98,7 +98,7 @@ def test_set2(self):\n self.assertEqual(f.get(instance, encoding="ISO-8859-1"), iso)\n \n \n-class UnicodeTextFieldTest(ATSiteTestCase):\n+class UnicodeTextFieldTest(ATTestCase):\n \n def test_set(self):\n instance = Dummy()\n@@ -114,7 +114,7 @@ def test_set(self):\n self.assertEqual(f.getRaw(instance, encoding="ISO-8859-1"), \'h\xe9h\xe9h\xe9\')\n \n \n-class UnicodeBaseUnitTest(ATSiteTestCase):\n+class UnicodeBaseUnitTest(ATTestCase):\n \n def afterSetUp(self):\n self.instance = Dummy().__of__(self.portal)\ndiff --git a/Products/Archetypes/tests/test_update_schema.py b/Products/Archetypes/tests/test_update_schema.py\nindex 1f38d630..a1c6859b 100644\n--- a/Products/Archetypes/tests/test_update_schema.py\n+++ b/Products/Archetypes/tests/test_update_schema.py\n@@ -27,7 +27,7 @@\n \n from ZPublisher.HTTPRequest import HTTPRequest\n \n-from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase\n+from Products.Archetypes.tests.attestcase import ATTestCase\n from Products.Archetypes.tests.utils import mkDummyInContext\n from Products.Archetypes.atapi import TextField, BaseSchema, Schema, BaseContent\n \n@@ -57,10 +57,10 @@ class Dummy2(BaseContent):\n pass\n \n \n-class TestUpdateSchema(ATSiteTestCase):\n+class TestUpdateSchema(ATTestCase):\n \n def afterSetUp(self):\n- ATSiteTestCase.afterSetUp(self)\n+ ATTestCase.afterSetUp(self)\n self.attool = self.portal.archetype_tool\n # Calling mkDummyInContext adds content, but also registers\n # our classes and adds a copy of the schema.\n@@ -211,7 +211,7 @@ def types_to_update(self):\n return [ti[0] for ti in self.attool.getChangedSchema() if ti[1]]\n \n \n-class TestBasicSchemaUpdate(ATSiteTestCase):\n+class TestBasicSchemaUpdate(ATTestCase):\n """Tests for update schema behavior which depend only on the basic\n types, and examine baseline behavior when no real schema changes have\n happened."""\ndiff --git a/Products/Archetypes/tests/translate.txt b/Products/Archetypes/tests/translate.txt\nindex 0ce2b4fa..4e8bb612 100644\n--- a/Products/Archetypes/tests/translate.txt\n+++ b/Products/Archetypes/tests/translate.txt\n@@ -46,4 +46,10 @@ Now be sure our values are correctly translated in view::\n >>> \'translated:test2\' in br.contents and \'translated:Test\' in br.contents\n True\n >>> gsm.unregisterUtility(t, ITranslationDomain, \'attesti18n\')\n- True\n\\ No newline at end of file\n+ True\n+\n+Cleaup \n+\n+ >>> del portal[\'vocdemodoc3\']\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/traversal.txt b/Products/Archetypes/tests/traversal.txt\nindex ed8f471a..9b57a168 100644\n--- a/Products/Archetypes/tests/traversal.txt\n+++ b/Products/Archetypes/tests/traversal.txt\n@@ -388,4 +388,11 @@ test types are assigning a dummy var called_afterMKCOL_hook.\n Clean up\n >>> AppZapper().clear()\n \n+ >>> del portal[\'test_document\']\n+ >>> del portal[\'index_html\']\n+ >>> del portal[\'simple_folder\']\n+ >>> del portal[\'simple_btree_folder\']\n+ \n+ >>> import transaction\n+ >>> transaction.commit()\n \ndiff --git a/Products/Archetypes/tests/traversal_4981.txt b/Products/Archetypes/tests/traversal_4981.txt\nindex bb4a80cd..b194f7ea 100644\n--- a/Products/Archetypes/tests/traversal_4981.txt\n+++ b/Products/Archetypes/tests/traversal_4981.txt\n@@ -40,3 +40,9 @@ BaseObject.__bobo_traverse__ intercepts GET and POST, but not HEAD.\n ...\n \n >>> AppZapper().clear()\n+ >>> del portal[\'test_document\']\n+ >>> del portal[\'simple_folder\']\n+ >>> del portal[\'simple_btree_folder\']\n+\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/Products/Archetypes/tests/utils.py b/Products/Archetypes/tests/utils.py\nindex a5c9d21f..8f9fc9ca 100644\n--- a/Products/Archetypes/tests/utils.py\n+++ b/Products/Archetypes/tests/utils.py\n@@ -39,6 +39,7 @@\n from Products.Archetypes.atapi import listTypes\n from Products.Archetypes.atapi import BaseContent\n from Products.Archetypes.config import PKG_NAME\n+from Products.Archetypes.utils import shasattr\n \n logger = logging.getLogger(\'Archetypes\')\n \n@@ -63,6 +64,8 @@ def mkDummyInContext(klass, oid, context, schema=None):\n \n \n def makeContent(container, portal_type, id=\'document\', **kw):\n+ if shasattr(container, id):\n+ return getattr(container, id)\n container.invokeFactory(type_name=portal_type, id=id)\n return getattr(container, id)\n \ndiff --git a/Products/Archetypes/tests/webdav_operations.txt b/Products/Archetypes/tests/webdav_operations.txt\nindex 6970203a..f0240785 100644\n--- a/Products/Archetypes/tests/webdav_operations.txt\n+++ b/Products/Archetypes/tests/webdav_operations.txt\n@@ -15,6 +15,9 @@ First, setup some content with references:\n \n >>> f = makeContent(folder, portal_type=\'Folder\', title=\'Sub\', id=\'f\')\n \n+ >>> import transaction\n+ >>> transaction.commit()\n+\n >>> _ = a.addReference(b, "KnowsAbout")\n >>> _ = b.addReference(a, "KnowsAbout")\n \n@@ -74,3 +77,9 @@ Do a WebDAV move with \'b\' and make sure it keeps the references:\n \n Clean up\n >>> AppZapper().clear()\n+\n+ >>> del folder[\'a\']\n+ >>> del folder[\'f\']\n+\n+ >>> import transaction\n+ >>> transaction.commit()\ndiff --git a/news/113.bugfix b/news/113.bugfix\nnew file mode 100644\nindex 00000000..b840990b\n--- /dev/null\n+++ b/news/113.bugfix\n@@ -0,0 +1,3 @@\n+Fix testlayer mess\n+\n+[petschki]\n\\ No newline at end of file\n' +b"diff --git a/CHANGES.rst b/CHANGES.rst\nindex ee9fb02..42a9551 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -22,6 +22,10 @@ Bug fixes:\n \n Breaking changes:\n \n+- Default to the new plone.testing default of picking the ZServer port\n+ dynamically.\n+ [Rotonen]\n+\n - Remove compatibility code for Plone 4.x.\n [hvelarde]\n \ndiff --git a/src/plone/app/robotframework/variables.py b/src/plone/app/robotframework/variables.py\nindex 3345465..e28fa8b 100644\n--- a/src/plone/app/robotframework/variables.py\n+++ b/src/plone/app/robotframework/variables.py\n@@ -1,23 +1,12 @@\n+from plone.testing.z2 import ZSERVER_FIXTURE\n import os\n import pkg_resources\n \n-try:\n- from plone.testing.z2 import DEFAULT_ZSERVER_PORT\n-except ImportError:\n- # DEFAULT_ZSERVER_PORT is not defined until plone.testing == 4.0.8\n- DEFAULT_ZSERVER_PORT = 55001\n-\n-# plone.testing checks environment to allow overriding DEFAULT_ZSERVER_PORT\n-ZSERVER_PORT = os.environ.get('ZSERVER_PORT', DEFAULT_ZSERVER_PORT)\n-\n-# Allow specifying HOST and PORT through environment variables for instance,\n-# if tests should go through a proxy\n-ZOPE_HOST = os.environ.get('ZOPE_HOST', 'localhost')\n-ZOPE_PORT = os.environ.get('ZOPE_PORT', ZSERVER_PORT)\n+ZOPE_HOST = ZSERVER_FIXTURE.host\n+ZOPE_PORT = ZSERVER_FIXTURE.port\n \n CMFPLONE_VERSION = pkg_resources.get_distribution('Products.CMFPlone').version\n if CMFPLONE_VERSION.startswith('4.'):\n CMFPLONE_SELECTORS = 'selectors/cmfplone43.robot'\n elif CMFPLONE_VERSION.startswith('5.'):\n CMFPLONE_SELECTORS = 'selectors/cmfplone50.robot'\n-\n"