def test_set_registry_record_on_invalid_interface(self): """Test that passing an invalid interface raises an Exception.""" from plone.api.exc import InvalidParameterError with self.assertRaises(InvalidParameterError): portal.set_registry_record('something', 'value', interface=ImNotAnInterface)
def test_set_valid_registry_record(self): """Test that setting a valid registry record succeeds.""" registry = getUtility(IRegistry) registry.records['plone.api.plone_power'] = Record( field.TextLine(title=u"Plone's Power")) portal.set_registry_record('plone.api.plone_power', u'awesome') self.assertEqual(registry['plone.api.plone_power'], u'awesome')
def test_set_missing_param_registry_record(self): """Test that when set_registry_record is called without parameters, a MissingParameterError exception is raised. """ from plone.api.exc import MissingParameterError with self.assertRaises(MissingParameterError): portal.set_registry_record()
def setUp(self): """Shared test environment set-up, ran before every test.""" self.portal = self.layer['portal'] # Mock the mail host so we can test sending the email mockmailhost = MockMailHost('MailHost') if not getattr(mockmailhost, 'smtp_host', None): mockmailhost.smtp_host = 'localhost' self.portal.MailHost = mockmailhost sm = self.portal.getSiteManager() sm.registerUtility(component=mockmailhost, provided=IMailHost) self.mailhost = portal.get_tool('MailHost') if HAS_PLONE5: portal.set_registry_record( 'plone.email_from_name', u'Portal Owner', ) portal.set_registry_record( 'plone.email_from_address', '*****@*****.**', ) else: self.portal._updateProperty( 'email_from_name', 'Portal Owner', ) self.portal._updateProperty( 'email_from_address', '*****@*****.**', )
def setUp(self): """ """ self.portal = self.layer['portal'] self.request = self.layer['request'] setRoles(self.portal, TEST_USER_ID, ['Manager']) set_registry_record( 'enabled_types', ['Document'], interface=IRerSolrpushSettings ) self.published_doc = api.content.create( container=self.portal, type='Document', title='Published Document' ) api.content.transition(obj=self.published_doc, transition='publish') self.unpublished_doc = api.content.create( container=self.portal, type='Document', title='Unpublished Document', ) self.published_news = api.content.create( container=self.portal, type='News Item', title='Published News' ) self.unpublished_news = api.content.create( container=self.portal, type='News Item', title='Unpublished News' ) api.content.transition(obj=self.published_news, transition='publish') init_solr_push()
def test_maintenance_reindex_with_unwanted_types(self): self.reindex_view() solr_results = search(query={'*': '*', 'b_size': 100000}, fl='UID') self.assertEqual(solr_results.hits, 1) set_registry_record( 'enabled_types', ['Document', 'News Item'], interface=IRerSolrpushSettings, ) commit() api.content.transition(obj=self.news, transition='publish') commit() api.content.transition(obj=self.unpublished_doc, transition='publish') commit() solr_results = search(query={ '*': '*', 'b_size': 100000 }, fl='UID,portal_type') self.assertEqual(solr_results.hits, 3) set_registry_record('enabled_types', ['Document'], interface=IRerSolrpushSettings) self.reindex_view() solr_results = search(query={'*': '*', 'b_size': 100000}, fl='UID') # News isn't removed because reindex view only reindex values from # Plone self.assertEqual(solr_results.hits, 3)
def setUp(self): """Shared test environment set-up, ran before every test.""" self.portal = self.layer['portal'] # Mock the mail host so we can test sending the email mockmailhost = MockMailHost('MailHost') if not getattr(mockmailhost, 'smtp_host', None): mockmailhost.smtp_host = 'localhost' self.portal.MailHost = mockmailhost sm = self.portal.getSiteManager() sm.registerUtility(component=mockmailhost, provided=IMailHost) self.mailhost = portal.get_tool('MailHost') if HAS_PLONE5: portal.set_registry_record( 'plone.email_from_name', u'Portal Owner' ) portal.set_registry_record( 'plone.email_from_address', '*****@*****.**' ) else: self.portal._updateProperty('email_from_name', 'Portal Owner') self.portal._updateProperty( 'email_from_address', '*****@*****.**' )
def setUp(self): """ We create objects before initializing solr settings, so solr core is always empty on setUp. """ self.portal = self.layer['portal'] self.request = self.layer['request'] setRoles(self.portal, TEST_USER_ID, ['Manager']) set_registry_record( 'enabled_types', ['Document', 'News Item'], interface=IRerSolrpushSettings, ) get_registry_record('enabled_types', interface=IRerSolrpushSettings) init_solr_push() commit() self.document = api.content.create(container=self.portal, type='Document', title='Document foo') api.content.transition(obj=self.document, transition='publish') commit() self.news = api.content.create(container=self.portal, type='News Item', title='News bar') api.content.transition(obj=self.news, transition='publish') commit()
def test_maintenance_reindex_with_unwanted_types(self): self.reindex_view() solr_results = search(query={"*": "*", "b_size": 100000}, fl="UID") self.assertEqual(solr_results.hits, 1) set_registry_record( "enabled_types", [u"Document", u"News Item"], interface=IRerSolrpushSettings, ) api.content.transition(obj=self.news, transition="publish") api.content.transition(obj=self.unpublished_doc, transition="publish") commit() solr_results = search(query={ "*": "*", "b_size": 100000 }, fl="UID,portal_type") self.assertEqual(solr_results.hits, 3) set_registry_record("enabled_types", [u"Document"], interface=IRerSolrpushSettings) self.reindex_view() solr_results = search(query={"*": "*", "b_size": 100000}, fl="UID") # News isn't removed because reindex view only reindex values from # Plone self.assertEqual(solr_results.hits, 3)
def test_maintenance_reindex(self): solr_results = search(query={"*": "*", "b_size": 100000}, fl="UID") self.assertEqual(solr_results.hits, 0) self.reindex_view() solr_results = search(query={"*": "*", "b_size": 100000}, fl="UID") self.assertEqual(solr_results.hits, 1) self.assertEqual(solr_results.docs[0]["UID"], self.published_doc.UID()) # now, disable solr indexer and publish other two items set_registry_record("active", False, interface=IRerSolrpushSettings) api.content.transition(obj=self.news, transition="publish") api.content.transition(obj=self.unpublished_doc, transition="publish") commit() solr_results = search(query={"*": "*", "b_size": 100000}, fl="UID") self.assertEqual(solr_results.hits, 1) # now, enable and reindex set_registry_record("active", True, interface=IRerSolrpushSettings) self.reindex_view() solr_results = search(query={"*": "*", "b_size": 100000}, fl="UID") # news items are not enabled self.assertEqual(solr_results.hits, 2) self.assertEqual( set(doc["UID"] for doc in solr_results.docs), set([self.published_doc.UID(), self.unpublished_doc.UID()]), )
def tearDownPloneSite(self, portal): set_registry_record("active", True, interface=IRerSolrpushSettings) set_registry_record( "solr_url", self.solr_layer.solr_url, interface=IRerSolrpushSettings, ) self.solr_layer.tearDown()
def setUpPloneSite(self, portal): self.solr_layer.setUp() applyProfile(portal, 'rer.solrpush:default') set_registry_record('active', True, interface=IRerSolrpushSettings) set_registry_record( 'solr_url', self.solr_layer.solr_url, interface=IRerSolrpushSettings, )
def test_set_registry_record_on_invalid_interface(self): """Test that passing an invalid interface raises an Exception.""" from plone.api.exc import InvalidParameterError with self.assertRaises(InvalidParameterError): portal.set_registry_record( 'something', 'value', interface=ImNotAnInterface )
def test_search_with_elevate(self): doc3 = api.content.create(container=self.portal, type="Document", title="Third page") # page with the shortest title containing keyword has the better score doc4 = api.content.create(container=self.portal, type="Document", title="page") api.content.transition(obj=doc3, transition="publish") api.content.transition(obj=doc4, transition="publish") commit() solr_results = search(query={ "SearchableText": "page" }, fl=["UID", "Title", "[elevated]"]).docs self.assertEqual(len(solr_results), 4) self.assertEqual( solr_results[0], { "UID": doc4.UID(), "Title": doc4.Title(), "[elevated]": False }, ) # now let's set an elevate for third document value = json.dumps([{"text": [u"page"], "uid": [{"UID": doc3.UID()}]}]) if six.PY2: value = value.decode("utf-8") set_registry_record( "elevate_schema", value, interface=IElevateSettings, ) solr_results = search(query={ "SearchableText": "page" }, fl=["UID", "Title", "[elevated]"]).docs self.assertEqual(len(solr_results), 4) self.assertEqual( solr_results[0], { "UID": doc3.UID(), "Title": doc3.Title(), "[elevated]": True }, ) self.assertEqual( solr_results[1], { "UID": doc4.UID(), "Title": doc4.Title(), "[elevated]": False }, )
def setUp(self): """""" self.portal = self.layer["portal"] self.request = self.layer["request"] setRoles(self.portal, TEST_USER_ID, ["Manager"]) set_registry_record( "enabled_types", [u"Document", u"News Item"], interface=IRerSolrpushSettings, ) # Â initialize solr push, so solr will be populated automatically # on commits init_solr_push() commit() self.doc1 = api.content.create( container=self.portal, type="Document", title="First Document", description="lorem ipsum", subject=["foo", "bar"], ) self.doc2 = api.content.create( container=self.portal, type="Document", title="Second Document", description="lorem ipsum dolor sit amet", ) self.unpublished_doc = api.content.create( container=self.portal, type="Document", title="Unpublished Document", ) self.published_news = api.content.create( container=self.portal, type="News Item", title="Published News", subject=["foo", "news category"], ) self.unpublished_news = api.content.create( container=self.portal, type="News Item", title="Unpublished News", subject=["foo"], ) self.event = api.content.create(container=self.portal, type="Event", title="Event", subject=["foo"]) api.content.transition(obj=self.doc1, transition="publish") # commit() api.content.transition(obj=self.doc2, transition="publish") # commit() api.content.transition(obj=self.published_news, transition="publish") # commit() api.content.transition(obj=self.event, transition="publish") commit()
def setUp(self): """ """ self.portal = self.layer['portal'] self.request = self.layer['request'] setRoles(self.portal, TEST_USER_ID, ['Manager']) set_registry_record( 'enabled_types', ['Document', 'News Item'], interface=IRerSolrpushSettings, ) # Â initialize solr push, so solr will be populated automatically # on commits init_solr_push() commit() self.doc1 = api.content.create( container=self.portal, type='Document', title='First Document', description='lorem ipsum', subject=['foo', 'bar'], ) self.doc2 = api.content.create( container=self.portal, type='Document', title='Second Document', description='lorem ipsum dolor sit amet', ) self.unpublished_doc = api.content.create( container=self.portal, type='Document', title='Unpublished Document', ) self.published_news = api.content.create( container=self.portal, type='News Item', title='Published News', subject=['foo', 'news category'], ) self.unpublished_news = api.content.create( container=self.portal, type='News Item', title='Unpublished News', subject=['foo'], ) self.event = api.content.create( container=self.portal, type='Event', title='Event', subject=['foo'] ) api.content.transition(obj=self.doc1, transition='publish') commit() api.content.transition(obj=self.doc2, transition='publish') commit() api.content.transition(obj=self.published_news, transition='publish') commit() api.content.transition(obj=self.event, transition='publish') commit()
def test_set_non_existing_record_value(self): """Test that setting the value of a non existent record raises an Exception. """ from plone.api.exc import InvalidParameterError with self.assertRaises(InvalidParameterError): portal.set_registry_record( name='nonexistent.sharepoint.power', value=u'Zero', )
def setUp(self): """Custom shared utility setup for tests.""" self.portal = self.layer["portal"] self.request = self.layer["request"] setRoles(self.portal, TEST_USER_ID, ["Manager"]) set_registry_record( "enabled_types", [u"Document", u"File"], interface=IRerSolrpushSettings, )
def setUp(self): """Custom shared utility setup for tests.""" self.portal = self.layer['portal'] self.request = self.layer['request'] setRoles(self.portal, TEST_USER_ID, ['Manager']) set_registry_record( 'enabled_types', ['Document', 'File'], interface=IRerSolrpushSettings, )
def setUpPloneSite(self, portal): self.solr_layer.setUp() applyProfile(portal, "rer.solrpush:default") set_registry_record("active", True, interface=IRerSolrpushSettings) set_registry_record( "solr_url", self.solr_layer.solr_url, interface=IRerSolrpushSettings, ) init_solr_push()
def test_set_invalid_key_type_record(self): """Test that trying to set the value of a record by passing a list for the record name instead of a string, raises an error. """ from plone.api.exc import InvalidParameterError with self.assertRaises(InvalidParameterError): portal.set_registry_record( name=['foo', 'bar'], value=u"baz", )
def setUp(self): """ We create objects before initializing solr settings, so solr core is always empty on setUp. """ self.portal = self.layer["portal"] self.request = self.layer["request"] setRoles(self.portal, TEST_USER_ID, ["Manager"]) set_registry_record( "enabled_types", [u"Document", u"News Item"], interface=IRerSolrpushSettings, ) init_solr_push() commit() # set_registry_record("active", True, interface=IRerSolrpushSettings) self.docs = {} for i in range(20): searchwords = [] id = "doc-%03d" % i if i == 5: id = "doc-odd" title = "Document %s" % i searchwords = ["odd"] elif i % 2 == 0: title = "Document %s even even" % i else: title = "Document %s odd odd" % i obj = self.docs[i] = api.content.create( container=self.portal, type="Document", id=id, title=title, searchwords=searchwords, ) # obj.reindexObject(idxs=['Title']) api.content.transition(obj=obj, transition="publish") for i in range(10): id = "event-%03d" % i if i == 5: id = "event-odd" title = "Event %s" % i elif i % 2 == 0: title = "Event %s even even" % i else: title = "Event %s odd odd" % i obj = self.docs[i] = api.content.create( container=self.portal, type="Event", id=id, title=title, ) api.content.transition(obj=obj, transition="publish") commit()
def test_search_bq(self): solr_results = search(query={"": "odd"}, fl=["UID", "id", "Title"]) self.assertEqual(solr_results.hits, len(self.docs) / 2) self.assertNotEqual(solr_results.docs[0]["id"], "odd") set_registry_record("bq", u"id:odd", interface=IRerSolrpushSettings) commit() solr_results = search(query={"": "odd"}, fl=["UID", "id", "Title"]) self.assertEqual(solr_results.hits, len(self.docs) / 2) self.assertEqual(solr_results.docs[0]["id"], "odd")
def test_set_no_value_param_for_existing_record(self): """Test that calling portal.set_registry_record with a name parameter for an existing record, but without a value, raises an Exception. """ registry = getUtility(IRegistry) registry.records['plone.api.plone_power'] = Record( field.TextLine(title=u"Plone's Power")) from plone.api.exc import MissingParameterError with self.assertRaises(MissingParameterError): portal.set_registry_record(name='plone.api.plone_power')
def importVarious(context): """ Import various settings.""" # Only run step if a flag file is present if context.readDataFile('PloneSurvey.txt') is None: return registry = getUtility(IRegistry) navigation_settings = registry.forInterface(INavigationSchema, prefix='plone') if 'Survey' not in navigation_settings.displayed_types: tmp = tuple(navigation_settings.displayed_types) # XXX this doesn't work in registry.xml in tests portal.set_registry_record('plone.displayed_types', tmp + ('Survey',))
def test_set_registry_record_from_interface(self): """Test that setting a value on a record from an interface works.""" registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) text = u'random text' portal.set_registry_record('field_one', text, interface=IMyRegistrySettings) self.assertEqual( portal.get_registry_record('field_one', interface=IMyRegistrySettings), text)
def test_set_invalid_registry_record_from_interface(self): """Test that trying to set an invalid field from an interface raises an Exception. """ from plone.api.exc import InvalidParameterError registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) with self.assertRaises(InvalidParameterError): portal.set_registry_record('non_existing_field', 'value', interface=IMyRegistrySettings)
def test_set_invalid_value_on_registry_record_from_interface(self): """Test that setting a value not meant for the record raises an Exception.. """ from plone.api.exc import InvalidParameterError registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) with self.assertRaises(InvalidParameterError): portal.set_registry_record('field_one', 'value', interface=IMyRegistrySettings)
def test_set_registry_record_on_invalid_interface_msg(self): """Test that a helpful message is shown when passing an invalid interface. """ from plone.api.exc import InvalidParameterError with self.assertRaises(InvalidParameterError) as cm: portal.set_registry_record('something', 'value', interface=ImNotAnInterface) exc_str = str(cm.exception) # Check if there is an error message. self.assertTrue(exc_str.startswith('The interface parameter has to '))
def importVarious(context): """ Import various settings.""" # Only run step if a flag file is present if context.readDataFile('PloneSurvey.txt') is None: return registry = getUtility(IRegistry) navigation_settings = registry.forInterface(INavigationSchema, prefix='plone') if 'Survey' not in navigation_settings.displayed_types: tmp = tuple(navigation_settings.displayed_types) # XXX this doesn't work in registry.xml in tests portal.set_registry_record('plone.displayed_types', tmp + ('Survey', ))
def handle_update_default(self, data, type): should_update_registy = data.get('update_default_{}'.format(type), False) form_value = data.get('view_more_{}'.format(type), None) if should_update_registy and form_value: record_name = 'castle.resource_slide_view_more_{}'.format(type) try: default_value = get_registry_record(record_name) except Exception: return if form_value != default_value: set_registry_record(record_name, form_value) data['update_default_{}'.format(type)] = False
def _set_localization_date_format(self): """Set the expected localized date format.""" from plone.api.exc import InvalidParameterError name_root = 'Products.CMFPlone.i18nl10n.override_dateformat.' try: portal.set_registry_record( name=name_root + 'Enabled', value=True, ) portal.set_registry_record( name=name_root + 'date_format_long', value='%b %d, %Y %I:%M %p', ) portal.set_registry_record( name=name_root + 'time_format', value='%I:%M %p', ) portal.set_registry_record( name=name_root + 'date_format_short', value='%b %d, %Y', ) except InvalidParameterError: # before Plone 4.3, date formats were stored in portal_properties properties = portal.get_tool('portal_properties') properties.localLongTimeFormat = '%b %d, %Y %I:%M %p' properties.localTimeOnlyFormat = '%I:%M %p' properties.localTimeFormat = '%b %d, %Y'
def test_search_qf(self): solr_results = search(query={"": "odd"}, fl=["UID", "id", "Title"]) self.assertEqual(solr_results.hits, len(self.docs) / 2) self.assertNotEqual(solr_results.docs[0]["id"], "odd") set_registry_record( "qf", u"id^1000.0 SearchableText^1.0", interface=IRerSolrpushSettings, ) commit() solr_results = search(query={"": "odd"}, fl=["UID", "id", "Title"]) self.assertEqual(solr_results.hits, len(self.docs) / 2) self.assertEqual(solr_results.docs[0]["id"], "odd")
def test_set_invalid_registry_record_from_interface(self): """Test that trying to set an invalid field from an interface raises an Exception. """ from plone.api.exc import InvalidParameterError registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) with self.assertRaises(InvalidParameterError): portal.set_registry_record( 'non_existing_field', 'value', interface=IMyRegistrySettings )
def test_set_invalid_value_on_registry_record_from_interface(self): """Test that setting a value not meant for the record raises an Exception.. """ from plone.api.exc import InvalidParameterError registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) with self.assertRaises(InvalidParameterError): portal.set_registry_record( 'field_one', 'value', interface=IMyRegistrySettings )
def test_get_localized_time(self): """Test getting the localized time.""" from plone.api.exc import InvalidParameterError # set the expected localized date format name_root = "Products.CMFPlone.i18nl10n.override_dateformat." try: portal.set_registry_record(name=name_root + "Enabled", value=True) portal.set_registry_record(name=name_root + "date_format_long", value="%b %d, %Y %I:%M %p") portal.set_registry_record(name=name_root + "time_format", value="%I:%M %p") portal.set_registry_record(name=name_root + "date_format_short", value="%b %d, %Y") except InvalidParameterError: # before Plone 4.3, date formats were stored in portal_properties properties = portal.get_tool("portal_properties") properties.localLongTimeFormat = "%b %d, %Y %I:%M %p" properties.localTimeOnlyFormat = "%I:%M %p" properties.localTimeFormat = "%b %d, %Y" # tests result = portal.get_localized_time(datetime=DateTime(1999, 12, 31, 23, 59), long_format=True) self.assertEqual(result, "Dec 31, 1999 11:59 PM") result = portal.get_localized_time(datetime=DateTime(1999, 12, 31, 23, 59), time_only=True) self.assertEqual(result, "11:59 PM") result = portal.get_localized_time(datetime=DateTime(1999, 12, 31, 23, 59)) self.assertEqual(result, "Dec 31, 1999")
def test_set_registry_record_on_invalid_interface_msg(self): """Test that a helpful message is shown when passing an invalid interface. """ from plone.api.exc import InvalidParameterError with self.assertRaises(InvalidParameterError) as cm: portal.set_registry_record( 'something', 'value', interface=ImNotAnInterface ) exc_str = str(cm.exception) # Check if there is an error message. self.assertTrue(exc_str.startswith('The interface parameter has to '))
def test_set_registry_record(self): registry = getUtility(IRegistry) registry.records['plone.api.plone_power'] = Record( field.TextLine(title=u"Plone's Power")) portal.set_registry_record('plone.api.plone_power', u'awesome') self.assertEqual(registry['plone.api.plone_power'], u'awesome') self.assertRaises(KeyError, portal.set_registry_record, name='nonexistent.sharepoint.power', value=u'Zero') self.assertRaises(MissingParameterError, portal.set_registry_record) self.assertRaises(MissingParameterError, portal.set_registry_record, name='plone.api.plone_power') self.assertRaises(InvalidParameterError, portal.set_registry_record, name=['foo', 'bar'], value=u"baz")
def test_send_email_with_config_in_registry(self): """Test mail-setting being stored in registry """ self.mailhost.reset() portal.set_registry_record('plone.email_from_address', '*****@*****.**') # ASCII portal.set_registry_record('plone.email_from_name', u'Registry') # TextLine portal.send_email( recipient='*****@*****.**', subject='Trappist', body=u'One for you Bob!', ) self.assertEqual(len(self.mailhost.messages), 1) msg = message_from_string(self.mailhost.messages[0]) self.assertEqual(msg['From'], 'Registry <*****@*****.**>')
def test_set_registry_record_from_interface(self): """Test that setting a value on a record from an interface works.""" registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) text = u'random text' portal.set_registry_record( 'field_one', text, interface=IMyRegistrySettings ) self.assertEqual( portal.get_registry_record( 'field_one', interface=IMyRegistrySettings ), text )
def test_set_invalid_registry_record_from_interface_msg(self): """Test that a helpful message is shown when trying to set an invalid field from an interface. """ from plone.api.exc import InvalidParameterError registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) with self.assertRaises(InvalidParameterError) as cm: portal.set_registry_record( 'non_existing_field', 'value', interface=IMyRegistrySettings ) exc_str = str(cm.exception) # Check if there is an error message. self.assertTrue(exc_str.startswith('Cannot find a record with name ')) self.assertTrue(exc_str.find(' on interface ') != -1) self.assertTrue(exc_str.find('field_one') != -1) self.assertTrue(exc_str.find('field_two') != -1)
def test_set_invalid_value_on_registry_record_from_interface_msg(self): """Test that setting a value not meant for the record raises an Exception.. """ from plone.api.exc import InvalidParameterError registry = getUtility(IRegistry) registry.registerInterface(IMyRegistrySettings) with self.assertRaises(InvalidParameterError) as cm: portal.set_registry_record( 'field_one', 'value', interface=IMyRegistrySettings ) exc_str = str(cm.exception) # Check if there is an error message. self.assertTrue( exc_str.startswith('The value parameter for the field') ) self.assertTrue(exc_str.find(' needs to be ') != -1) self.assertTrue(exc_str.find('TextLine') != -1)
def test_send_email_with_printingmailhost(self): """ Test that send_email does not raise an exception when Products.PrintingMailHost is installed and active. """ old_flag = portal.PRINTINGMAILHOST_ENABLED if HAS_PLONE5: old_value = portal.get_registry_record('plone.email_from_address') portal.set_registry_record('plone.email_from_address', '') # ASCII else: old_smtp_host = self.portal.MailHost.smtp_host self.portal.MailHost.smtp_host = None # PrintingMailHost disabled portal.PRINTINGMAILHOST_ENABLED = False with self.assertRaises(ValueError): portal.send_email( recipient='*****@*****.**', sender='*****@*****.**', subject='Trappist', body=u'One for you Bob!' ) # PrintingMailHost enabled portal.PRINTINGMAILHOST_ENABLED = True portal.send_email( recipient='*****@*****.**', sender='*****@*****.**', subject='Trappist', body=u'One for you Bob!', ) # Prevents sideeffects in other tests. if HAS_PLONE5: portal.set_registry_record('plone.email_from_address', old_value) else: self.portal.MailHost.smtp_host = old_smtp_host portal.PRINTINGMAILHOST_ENABLED = old_flag
def test_send_email_without_configured_mailhost(self): """By default, the MailHost is not configured yet, so we cannot send email. """ if HAS_PLONE5: old_value = portal.get_registry_record('plone.email_from_address') portal.set_registry_record('plone.email_from_address', '') # ASCII else: old_smtp_host = self.portal.MailHost.smtp_host self.portal.MailHost.smtp_host = None with self.assertRaises(ValueError): portal.send_email( recipient='*****@*****.**', sender='*****@*****.**', subject='Trappist', body=u'One for you Bob!', ) if HAS_PLONE5: portal.set_registry_record('plone.email_from_address', old_value) else: self.portal.MailHost.smtp_host = old_smtp_host
def test_get_localized_time(self): """Test getting the localized time.""" from plone.api.exc import InvalidParameterError # set the expected localized date format name_root = 'Products.CMFPlone.i18nl10n.override_dateformat.' try: portal.set_registry_record( name=name_root + 'Enabled', value=True, ) portal.set_registry_record( name=name_root + 'date_format_long', value='%b %d, %Y %I:%M %p', ) portal.set_registry_record( name=name_root + 'time_format', value='%I:%M %p', ) portal.set_registry_record( name=name_root + 'date_format_short', value='%b %d, %Y', ) except InvalidParameterError: # before Plone 4.3, date formats were stored in portal_properties properties = portal.get_tool('portal_properties') properties.localLongTimeFormat = '%b %d, %Y %I:%M %p' properties.localTimeOnlyFormat = '%I:%M %p' properties.localTimeFormat = '%b %d, %Y' # tests result = portal.get_localized_time( datetime=DateTime(1999, 12, 31, 23, 59), long_format=True, ) self.assertEqual(result, 'Dec 31, 1999 11:59 PM') result = portal.get_localized_time( datetime=DateTime(1999, 12, 31, 23, 59), time_only=True, ) self.assertEqual(result, '11:59 PM') result = portal.get_localized_time( datetime=DateTime(1999, 12, 31, 23, 59), ) self.assertEqual(result, 'Dec 31, 1999')
def tearDownPloneSite(self, portal): set_registry_record('collective.solr.active', False) set_registry_record('collective.solr.port', 8983) set_registry_record('collective.solr.base', u'/solr/plone') self.solr_layer.tearDown()
def setUpPloneSite(self, portal): self.solr_layer.setUp() applyProfile(portal, 'collective.solr:default') set_registry_record('collective.solr.active', self.solr_active) set_registry_record('collective.solr.port', self.solr_port) set_registry_record('collective.solr.base', self.solr_base)