cement.ext.ext_dummy
¶
The Dummy Extension provides several ‘placeholder’ type handlers to either
mock operations or provide local-only usage during development. A perfect
example is the DummyMailHandler
that can be use during development
or staging to prevent real email messages from being sent externally.
Requirements¶
- No external dependencies
Configuration¶
- See each handler’s documentation regarding what configurations they support.
Usage¶
from cement.core.foundation import CementApp
class MyApp(CementApp):
class Meta:
label = 'myapp'
extensions = ['dummy']
output_handler = 'dummy'
mail_handler = 'dummy'
with MyApp() as app:
app.run()
-
class
cement.ext.ext_dummy.
DummyMailHandler
(*args, **kw)¶ Bases:
cement.core.mail.CementMailHandler
This class implements the
cement.core.mail.IMail
interface, but is intended for use in development as no email is actually sent.Usage
class MyApp(CementApp): class Meta: label = 'myapp' mail_handler = 'dummy' with MyApp() as app: app.run() app.mail.send('This is my fake message', subject='This is my subject', to=['john@example.com', 'rita@example.com'], from_addr='me@example.com', )
The above will print the following to console:
====================================================================== DUMMY MAIL MESSAGE ---------------------------------------------------------------------- To: john@example.com, rita@example.com From: me@example.com CC: BCC: Subject: This is my subject --- This is my fake message ----------------------------------------------------------------------
Configuration
This handler supports the following configuration settings:
- to - Default
to
addresses (list, or comma separated depending on the ConfigHandler in use) - from_addr - Default
from_addr
address - cc - Default
cc
addresses (list, or comma separated depending on the ConfigHandler in use) - bcc - Default
bcc
addresses (list, or comma separated depending on the ConfigHandler in use) - subject - Default
subject
- subject_prefix - Additional string to prepend to the
subject
You can add these to any application configuration file under a
[mail.dummy]
section, for example:~/.myapp.conf
[myapp] # set the mail handler to use mail_handler = dummy [mail.dummy] # default to addresses (comma separated list) to = me@example.com # default from address from = someone_else@example.com # default cc addresses (comma separated list) cc = jane@example.com, rita@example.com # default bcc addresses (comma separated list) bcc = blackhole@example.com, someone_else@example.com # default subject subject = This is The Default Subject # additional prefix to prepend to the subject subject_prefix = MY PREFIX >
-
DummyMailHandler.
send
(body, **kw)¶ Mimic sending an email message, but really just print what would be sent to console. Keyword arguments override configuration defaults (cc, bcc, etc).
Parameters: - body (
multiline string
) – The message body to send - to (
list
) – List of recipients (generally email addresses) - from_addr (
str
) – Address (generally email) of the sender - cc (
list
) – List of CC Recipients - bcc (
list
) – List of BCC Recipients - subject (
str
) – Message subject line
Returns: Boolean (
True
if message is sent successfully,False
otherwise)Usage
# Using all configuration defaults app.mail.send('This is my message body') # Overriding configuration defaults app.mail.send('My message body' to=['john@example.com'], from_addr='me@example.com', cc=['jane@example.com', 'rita@example.com'], subject='This is my subject', )
- body (
- to - Default
-
class
cement.ext.ext_dummy.
DummyOutputHandler
(*args, **kw)¶ Bases:
cement.core.output.CementOutputHandler
This class is an internal implementation of the
cement.core.output.IOutput
interface. It does not take any parameters on initialization, and does not actually output anything.-
class
Meta
¶ Bases:
object
Handler meta-data
-
interface
¶ The interface this class implements.
alias of
IOutput
-
label
= 'dummy'¶ The string identifier of this handler.
-
overridable
= False¶ Whether or not to include
dummy
as an available to choice to override theoutput_handler
via command line options.
-
-
DummyOutputHandler.
render
(data_dict, template=None, **kw)¶ This implementation does not actually render anything to output, but rather logs it to the debug facility.
Parameters: - data_dict – The data dictionary to render.
- template – The template parameter is not used by this implementation at all.
Returns: None
-
class