plone.app.linkintegrity/tg_no_hard_at_dep: Make AT imports optional

Tom Gross <jenkins-z4DKO/[email protected]> Tue, 01 Aug 2017 14:42:00 -0700 (PDT)
Newsgroups gmane.comp.web.zope.plone.cvs
Message-ID <[email protected]>
Repository: plone.app.linkintegrity
Branch: refs/heads/tg_no_hard_at_dep
Date: 2017-08-01T21:38:43Z
Author: Tom Gross (tomgross) <[email protected]>
Commit: https://github.com/plone/plone.app.linkintegrity/commit/684925af03d7eb3358463a6dfc800a3b8510a472

Make AT imports optional

Files changed:
M plone/app/linkintegrity/tests/test_upgrade.py
M plone/app/linkintegrity/upgrades.py

diff --git a/plone/app/linkintegrity/tests/test_upgrade.py b/plone/app/linkintegrity/tests/test_upgrade.py
index 0b1119b..3f3913b 100644
--- a/plone/app/linkintegrity/tests/test_upgrade.py
+++ b/plone/app/linkintegrity/tests/test_upgrade.py
@@ -3,12 +3,19 @@
 from plone.app.linkintegrity.tests.base import ATBaseTestCase
 from plone.app.linkintegrity.upgrades import migrate_linkintegrity_relations
 from plone.app.linkintegrity.utils import hasIncomingLinks
-from Products.Archetypes.interfaces import IReferenceable
+try:
+    from Products.Archetypes.interfaces import IReferenceable
+    HAS_AT = True
+except ImportError:
+    HAS_AT = False
+import unittest
 
 
 class ReferenceMigrationATTestCase(ATBaseTestCase):
     """Reference migration testcase for at content types"""
 
+    @unittest.skipUnless(
+        HAS_AT, 'Archetypes are not installed. Skipping migration tests')
     def test_upgrade(self):
         doc3 = self.portal['doc3']
         doc1 = self.portal['doc1']
diff --git a/plone/app/linkintegrity/upgrades.py b/plone/app/linkintegrity/upgrades.py
index 0a93b8d..50a8669 100644
--- a/plone/app/linkintegrity/upgrades.py
+++ b/plone/app/linkintegrity/upgrades.py
@@ -1,7 +1,10 @@
 # -*- coding: utf-8 -*-
 from plone.app.linkintegrity.handlers import referencedRelationship
 from plone.app.uuid.utils import uuidToObject
-from Products.Archetypes.config import REFERENCE_CATALOG
+try:
+    from Products.Archetypes.config import REFERENCE_CATALOG
+except ImportError:
+    REFERENCE_CATALOG = "reference_catalog"
 from Products.CMFCore.utils import getToolByName
 from zope.lifecycleevent import modified
 



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot