def test_rewrite_spamc_config(): new_content = lib_spamc._rewrite_spamc_config('--ssl sslv3\n') assert new_content == '--ssl\n' # equal sign format new_content = lib_spamc._rewrite_spamc_config('--ssl=tlsv1\n') assert new_content == '--ssl\n' # no argument new_content = lib_spamc._rewrite_spamc_config('--ssl\n') assert new_content == '--ssl\n'
def test_rewrite_spamc_config_tls_supersedes_ssl(): # Ideally, the result would be a single '--ssl' option. However for # simplicity, we allow the option to be output twice. It's not nice, but # there's nothing technically wrong with it. And it's really a corner case # anyway. If someone fixes it, this test case can be updated to expect # '--ssl' as output. new_content = lib_spamc._rewrite_spamc_config('--ssl sslv3 --ssl tlsv1\n') assert new_content == '--ssl --ssl\n' # reverse order new_content = lib_spamc._rewrite_spamc_config('--ssl tlsv1 --ssl sslv3\n') assert new_content == '--ssl --ssl\n'
def test_rewrite_spamc_config_comment(): new_content = lib_spamc._rewrite_spamc_config('# --ssl tlsv1\n') assert new_content == '# --ssl tlsv1\n' # comment mixed with actual option new_content = lib_spamc._rewrite_spamc_config( '# --ssl tlsv1\n--ssl sslv3\n') assert new_content == '# --ssl tlsv1\n--ssl\n' # comment mixed with actual option new_content = lib_spamc._rewrite_spamc_config( '--ssl tlsv1\n# --ssl sslv3\n') assert new_content == '--ssl\n# --ssl sslv3\n'
def test_rewrite_spamc_config_crazy_corner_cases(): # The option and new_content can have a comment in between new_content = lib_spamc._rewrite_spamc_config('--ssl\n# foo\ntlsv1\n') assert new_content == '--ssl\n# foo\n\n' new_content = lib_spamc._rewrite_spamc_config( '--ssl\n# foo\n# bar\nsslv3\n') assert new_content == '--ssl\n# foo\n# bar\n\n' new_content = lib_spamc._rewrite_spamc_config( '--ssl\n# foo\n# tlsv1\nsslv3\n') assert new_content == '--ssl\n# foo\n# tlsv1\n\n' # --ssl followed by another option new_content = lib_spamc._rewrite_spamc_config('--ssl\n# foo\n-B\n') assert new_content == '--ssl\n# foo\n-B\n'
def test_rewrite_spamc_config_without_valid_argument(): # If we encounter an unrecognized parameter, we leave it be - the # configuration is invalid anyway, so let's not mess it up even more. new_content = lib_spamc._rewrite_spamc_config('--ssl foo\n') assert new_content == '--ssl foo\n' # --ssl followed by another option new_content = lib_spamc._rewrite_spamc_config('--ssl -B\n') assert new_content == '--ssl -B\n' # space surrounding the equal sign. This amounts to an unrecognized # argument (empty string) new_content = lib_spamc._rewrite_spamc_config('--ssl= tlsv1\n') assert new_content == '--ssl= tlsv1\n' # space surrounding the equal sign. This amounts to an unrecognized # argument ("=tlsv1") new_content = lib_spamc._rewrite_spamc_config('--ssl =tlsv1\n') assert new_content == '--ssl =tlsv1\n'
def test_rewrite_spamc_config_multiline(): new_content = lib_spamc._rewrite_spamc_config('-B --ssl \n sslv3 -c\n-H\n') assert new_content == '-B --ssl \n -c\n-H\n' new_content = lib_spamc._rewrite_spamc_config('--ssl\n-B\n') assert new_content == '--ssl\n-B\n'