Fix #861 - Add unit test and documentation for email_smtp_force_starttls

This commit is contained in:
Jessica Tallon
2014-08-12 16:56:08 +01:00
parent 3b104bbcef
commit 7ffd4cf4b5
3 changed files with 44 additions and 2 deletions

View File

@@ -14,8 +14,13 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import mock
import email
import pytest
import smtplib
import pkg_resources
from mediagoblin.tests.tools import get_app
from mediagoblin.tools import common, url, translate, mail, text, testing
testing._activate_testing()
@@ -69,6 +74,28 @@ I hope you like unit tests JUST AS MUCH AS I DO!"""
I hope you like unit tests JUST AS MUCH AS I DO!"""
@pytest.fixture()
def starttls_enabled_app(request):
return get_app(
request,
mgoblin_config=pkg_resources.resource_filename(
"mediagoblin.tests",
"starttls_config.ini"
)
)
def test_email_force_starttls(starttls_enabled_app):
common.TESTS_ENABLED = False
SMTP = lambda *args, **kwargs: mail.FakeMhost()
with mock.patch('smtplib.SMTP', SMTP):
with pytest.raises(smtplib.SMTPException):
mail.send_email(
from_addr="notices@my.test.instance.com",
to_addrs="someone@someplace.com",
subject="Testing is so much fun!",
message_body="Ohai ^_^"
)
def test_slugify():
assert url.slugify(u'a walk in the park') == u'a-walk-in-the-park'
assert url.slugify(u'A Walk in the Park') == u'a-walk-in-the-park'