annotate roundup/test/mocknull.py @ 8478:ed4ef394d5d6

doc: initial attempt to document setup of pgp support for email. Used an AI assistant to help write this. Basic gpg commands seem to work, but I have not tested this totally. Docs basically follow the setup used for pgp testing in the test suite. It looks like roundup accepts signed emails as well as encrypted and signed emails. But it does not generate signed emails. Also it looks like there is no PGP support for alternate email addresses. Only primary addresses can do PGP emails.
author John Rouillard <rouilj@ieee.org>
date Sat, 15 Nov 2025 16:59:24 -0500
parents 617d85ce4ac3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2532
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 class MockNull:
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 def __init__(self, **kwargs):
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 for key, value in kwargs.items():
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 self.__dict__[key] = value
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 def __call__(self, *args, **kwargs): return MockNull()
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
8
2532
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 def __getattr__(self, name):
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 # This allows assignments which assume all intermediate steps are Null
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 # objects if they don't exist yet.
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 #
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 # For example (with just 'client' defined):
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 #
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 # client.db.config.TRACKER_WEB = 'BASE/'
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 self.__dict__[name] = MockNull()
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 return getattr(self, name)
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 def __getitem__(self, key): return self
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
20
5457
a35d4cc8cd1a fix MissingValue / MockNull to return False on __bool__ and add a
Christof Meerwald <cmeerw@cmeerw.org>
parents: 5404
diff changeset
21 def __bool__(self): return False
5404
3757449e00c4 Python 3 preparation: use __bool__ instead of __nonzero__.
Joseph Myers <jsm@polyomino.org.uk>
parents: 2686
diff changeset
22 # Python 2 compatibility:
3757449e00c4 Python 3 preparation: use __bool__ instead of __nonzero__.
Joseph Myers <jsm@polyomino.org.uk>
parents: 2686
diff changeset
23 __nonzero__ = __bool__
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
24
5457
a35d4cc8cd1a fix MissingValue / MockNull to return False on __bool__ and add a
Christof Meerwald <cmeerw@cmeerw.org>
parents: 5404
diff changeset
25 def __contains__(self, key): return False
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
26
5461
ad8031290639 Python 3 compatibility for missing / mock value
Christof Meerwald <cmeerw@cmeerw.org>
parents: 5457
diff changeset
27 def __eq__(self, rhs): return False
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
28
5461
ad8031290639 Python 3 compatibility for missing / mock value
Christof Meerwald <cmeerw@cmeerw.org>
parents: 5457
diff changeset
29 def __ne__(self, rhs): return False
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
30
2532
24d3b25a9157 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 def __str__(self): return ''
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
32
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
33 def __repr__(self): return '<MockNull 0x%x>' % id(self)
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
34
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
35 def gettext(self, string): return string
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
36
2686
79fd8537ae3b .gettext() facility is vital for many roundup objects.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2532
diff changeset
37 _ = gettext
8260
617d85ce4ac3 chore(ruff): variable renames, formatting, sort imports, use with open
John Rouillard <rouilj@ieee.org>
parents: 6366
diff changeset
38
5699
b1ab8bd18e79 Adding tests for csrf protection for rest. Also test disabling of
John Rouillard <rouilj@ieee.org>
parents: 5461
diff changeset
39 def get(self, name, default=None):
b1ab8bd18e79 Adding tests for csrf protection for rest. Also test disabling of
John Rouillard <rouilj@ieee.org>
parents: 5461
diff changeset
40 try:
b1ab8bd18e79 Adding tests for csrf protection for rest. Also test disabling of
John Rouillard <rouilj@ieee.org>
parents: 5461
diff changeset
41 return self.__dict__[name.lower()]
b1ab8bd18e79 Adding tests for csrf protection for rest. Also test disabling of
John Rouillard <rouilj@ieee.org>
parents: 5461
diff changeset
42 except KeyError:
b1ab8bd18e79 Adding tests for csrf protection for rest. Also test disabling of
John Rouillard <rouilj@ieee.org>
parents: 5461
diff changeset
43 return default

Roundup Issue Tracker: http://roundup-tracker.org/