Piotr F. Mieszkowski
55b58d25bc
Use literal separator '@' in sanitize_case_sense
2022-06-01 23:23:51 +02:00
Piotr F. Mieszkowski
d3b1717290
Extract PGP/INLINE checks, remove unnecessary byte-check
2022-06-01 23:00:05 +02:00
Piotr F. Mieszkowski
4c6fdc52ec
Check mandatory config early, add tests
...
Also: extend failover logging configuration with file-based handler to make
sure that the user gets _some_ logs even if they do not configure Lacre at
all.
2022-05-31 22:09:10 +02:00
Piotr F. Mieszkowski
3bcc1151e5
Add E2E case: a user with a key and PGP/MIME configured
...
- Add a new test input message for a new test identity, test scenario
configuration and a test key.
- While retrieving message payload, determine charset based on the
Content-Type header. When missing, default to UTF-8.
- Use more comprehensible variables names.
- Adjust logging levels.
2022-05-30 00:49:40 +02:00
Piotr F. Mieszkowski
707fc96234
Add more contract tests
...
- Verify that Message.get_payload() returns str, unless passed decode=True,
when it returns bytes.
- Verify that RawConfigParser returns str.
2022-05-25 22:13:40 +02:00
Piotr F. Mieszkowski
558872d9d0
Start documenting dependency contracts with unit tests
...
Implement some unit tests for 'email' package so we know precisely how this
package behaves.
2022-05-16 20:57:12 +02:00
pfm
35987a6654
Merge pull request 'Clean-up' ( #70 ) from 69-cleanup into master
...
Reviewed-on: #70
2022-05-14 09:49:14 +00:00
Piotr F. Mieszkowski
d27eef911a
Update sample config
...
- Include helpful information about webpanel_url.
- Remove unused database settings.
- Add a hint about MySQL url to the database section.
2022-05-14 11:40:20 +02:00
Piotr F. Mieszkowski
92f3cedc51
Remove leftover .read() call
2022-05-14 11:26:49 +02:00
pfm
5639d8e5b6
Merge pull request 'Improve logging and configuration' ( #65 ) from logging-and-config into master
...
- Replace custom logging code with "logging" package.
- Unify access to configuration and extract to "lacre.config" package.
- Introduce a new configuration file (with a sample included) to control how and where Lacre writes diagnostic output.
- Update sample configuration.
Reviewed-on: #65
2022-05-13 20:01:10 +00:00
Piotr F. Mieszkowski
d8bef9cdb0
Explain syslog logging better in sample logging config
2022-05-13 21:57:29 +02:00
Piotr F. Mieszkowski
11b78ce0fb
Adjust log entry levels for severe conditions
...
When Lacre is misconfigured or can't proceed, report WARNING or even ERROR
level messages.
2022-05-13 21:27:50 +02:00
Piotr F. Mieszkowski
acdb2dd5c8
Log cron-job inner workings
2022-05-11 19:57:26 +02:00
Piotr F. Mieszkowski
7a8720c142
Update installation instructions, add sample logging config
2022-05-11 19:15:59 +02:00
Piotr F. Mieszkowski
8f0d8f4933
Add newlines to key material
2022-05-06 20:40:16 +02:00
Piotr F. Mieszkowski
617a208fe9
Fix indentation and names after rebase
2022-05-06 20:25:22 +02:00
Piotr F. Mieszkowski
9dfc447169
Use Lacre logging and configuration in register-handler
2022-05-06 20:13:23 +02:00
Piotr F. Mieszkowski
af5a5b4176
Use Lacre logging and configuration in cron.py
2022-05-06 20:13:19 +02:00
Piotr F. Mieszkowski
75ccfb0850
Use logging module
...
- Replace custom logging code with calls to logging module.
- Use logging.config to provide configuration parameters.
To make Lacre's logging more flexible, use fileConfig from logging.config to
set up all parameters. If the configuration file is missing, use dictConfig
with hardcoded reasonable defaults.
2022-05-06 19:39:56 +02:00
Piotr F. Mieszkowski
baf7954270
Use list booleanness instead of comparing with empty list
2022-05-06 19:39:56 +02:00
Piotr F. Mieszkowski
031c7234f6
Reorder top-level expressions
2022-05-06 19:39:56 +02:00
Piotr F. Mieszkowski
d90b50f7e7
Extract config, separate logging, split into smaller functions
...
- Move configuration-processing code to a separate module (lacre.config) and
provide a simple API to access configuration parameters.
- Prepare to use builtin logging module to log diagnostic data.
- Rework the configuration-processing file to make it cleaner.
- Log additional information while processing configuration.
- Reorder functions.
2022-05-06 19:39:56 +02:00
pfm
7767dfaff9
Merge pull request 'Fix minor cron.py issues' ( #64 ) from fix-cron-script into master
...
Reviewed-on: #64
2022-05-06 17:25:11 +00:00
Piotr F. Mieszkowski
55fa0d0601
[GnuPG.confirm_key] Convert email to bytes() before comparison
2022-05-06 19:14:52 +02:00
Piotr F. Mieszkowski
71afd6ed05
[GnuPG.confirm_key] Set 700 mode for temp. key home
2022-04-26 18:42:48 +02:00
Piotr F. Mieszkowski
a82ff9f3f1
Use actual keys (RSA and Ed25519) in cron-test
2022-04-24 10:42:51 +02:00
Piotr F. Mieszkowski
52b31028c5
Fix config key typo
2022-04-24 10:07:52 +02:00
Piotr F. Mieszkowski
b19a76e297
Update testing documentation
2022-04-23 13:13:57 +02:00
Piotr F. Mieszkowski
ffc53b935a
Finish migration to SQLAlchemy and automate testing cron.py
2022-04-23 13:08:40 +02:00
Piotr F. Mieszkowski
7aff414fb7
Use SQLAlchemy to access database
...
- Replace hardcoded MySQLdb package with sqlalchemy to support other RDBMS
backends.
- Provide a script that could eventually replace schema.sql (schema.py).
- Update sample configuration.
2022-04-23 09:39:20 +02:00
muppeth
86b725349f
added smtp auth to cron.py
2022-04-20 13:01:58 +02:00
Piotr F. Mieszkowski
ea0e012c04
Use 'open' to open a file
2022-04-19 21:35:22 +02:00
Piotr F. Mieszkowski
454b519c70
Use bytes in confirm_key's line operations
2022-04-19 21:22:34 +02:00
Piotr F. Mieszkowski
f472f4ac22
Use isinstance() instead of type()
2022-04-19 21:16:40 +02:00
Piotr F. Mieszkowski
fdadc89c31
Use bytes in GnuPG.confirm_key too
2022-04-19 20:49:49 +02:00
Piotr F. Mieszkowski
5a34249090
Fix minor cron.py issues
...
Related to #63 : TypeError: memoryview: a bytes-like object is required, not
'str'.
- Allow GnuPG.add_key accept either 'str' or 'bytes'.
- Import MIMEText from email.mime.text.
2022-04-10 19:03:18 +02:00
muppeth
c4e9e3e840
compatibility update for php7/8 ( #61 )
...
Co-authored-by: muppeth <muppeth@disroot.org>
Reviewed-on: #61
2022-03-23 10:05:11 +00:00
pfm
d1de1f0695
Merge pull request 'Remove support for decrypting emails' ( #60 ) from remove-decryption into master
...
Reviewed-on: #60
2022-03-10 19:03:41 +00:00
Piotr F. Mieszkowski
59b932abaa
Remove support for decrypting emails
2022-03-08 22:42:13 +01:00
pfm
968677f1ec
Merge pull request 'Migrate to Python 3.x' ( #58 ) from py3-migration into master
...
Reviewed-on: #58
Reviewed-by: muppeth <muppeth@no-reply@disroot.org>
2022-03-08 20:47:25 +00:00
Piotr F. Mieszkowski
c4927d2722
Avoid unnecessary list creation
2022-02-06 00:29:35 +01:00
Piotr F. Mieszkowski
9e17726e39
Use f-strings for formatting
2022-02-06 00:27:20 +01:00
Piotr F. Mieszkowski
67a938c049
GnuPG.add_key: Use build_command
2022-01-25 20:32:17 +01:00
Piotr F. Mieszkowski
03fc3d138e
Update testing documentation
...
- Explain how to specify Python binary path used during tests.
- Mention test logs.
2022-01-19 22:16:27 +01:00
Piotr F. Mieszkowski
a201265f87
Rework how E2E tests are executed
...
Tests kept breaking (not failing) randomly with "Broken pipe" errors. Rework
how processes are spawned to make sure that it doesn't break them again.
2022-01-19 21:57:46 +01:00
Piotr F. Mieszkowski
c81c6e6e0d
Remove hardcoded python3.8 path
...
- Let the user overwrite Python binary name while calling make.
- Use environment variable set by make to instruct e2e_test.py which binary it
should call to execute Python code.
2022-01-10 20:22:17 +01:00
Piotr F. Mieszkowski
5a8d2c0108
Add E2E cases: signed cleartext and multipart/encrypted
2022-01-10 19:48:44 +01:00
Piotr F. Mieszkowski
435528de43
Add an E2E test case with an already encrypted message
2022-01-10 19:32:46 +01:00
Piotr F. Mieszkowski
24f0c86d4f
Tidy up tests
...
- Makefile: add 'unittest' to .PHONY targets.
- Remove unnecessary #! line from e2e_test.py.
- Extract Python path to test/e2e.ini file.
2022-01-10 18:39:29 +01:00
Piotr F. Mieszkowski
1e7d33c1df
Handle bytes properly
...
Fix bytes sequences handling after auto-migration.
2022-01-10 18:21:53 +01:00