diff --git a/hypha/apply/utils/pdfs.py b/hypha/apply/utils/pdfs.py
index 505b9c2d74b5afb1316247e7be227f3a87a3cfa3..3e63b38f23ce98a85c754a757af5bf83acde0cc4 100644
--- a/hypha/apply/utils/pdfs.py
+++ b/hypha/apply/utils/pdfs.py
@@ -36,29 +36,38 @@ def font(font_name):
     return os.path.join(font_location, font_name)
 
 
-pdfmetrics.registerFont(TTFont('Montserrat', font('Montserrat-Regular.ttf')))
-pdfmetrics.registerFont(TTFont('MontserratBold', font('Montserrat-Bold.ttf')))
-pdfmetrics.registerFont(TTFont('MontserratItalic', font('Montserrat-Italic.ttf')))
-pdfmetrics.registerFont(TTFont('MontserratBoldItalic', font('Montserrat-BoldItalic.ttf')))
-pdfmetrics.registerFontFamily(
-    'Montserrat',
-    normal='Montserrat',
-    bold='MontserratBold',
-    italic='MontserratItalic',
-    boldItalic='MontserratBoldItalic'
-)
+PREPARED_FONTS = False
+
+
+def prepare_fonts():
+    global PREPARED_FONTS
+    if PREPARED_FONTS:
+        return
+    pdfmetrics.registerFont(TTFont('Montserrat', font('Montserrat-Regular.ttf')))
+    pdfmetrics.registerFont(TTFont('MontserratBold', font('Montserrat-Bold.ttf')))
+    pdfmetrics.registerFont(TTFont('MontserratItalic', font('Montserrat-Italic.ttf')))
+    pdfmetrics.registerFont(TTFont('MontserratBoldItalic', font('Montserrat-BoldItalic.ttf')))
+    pdfmetrics.registerFontFamily(
+        'Montserrat',
+        normal='Montserrat',
+        bold='MontserratBold',
+        italic='MontserratItalic',
+        boldItalic='MontserratBoldItalic'
+    )
+
+    pdfmetrics.registerFont(TTFont('NotoSans', font('NotoSans-Regular.ttf')))
+    pdfmetrics.registerFont(TTFont('NotoSansBold', font('NotoSans-Bold.ttf')))
+    pdfmetrics.registerFont(TTFont('NotoSansItalic', font('NotoSans-Italic.ttf')))
+    pdfmetrics.registerFont(TTFont('NotoSansBoldItalic', font('NotoSans-BoldItalic.ttf')))
+    pdfmetrics.registerFontFamily(
+        'NotoSans',
+        normal='NotoSans',
+        bold='NotoSansBold',
+        italic='NotoSansItalic',
+        boldItalic='NotoSansBoldItalic'
+    )
+    PREPARED_FONTS = True
 
-pdfmetrics.registerFont(TTFont('NotoSans', font('NotoSans-Regular.ttf')))
-pdfmetrics.registerFont(TTFont('NotoSansBold', font('NotoSans-Bold.ttf')))
-pdfmetrics.registerFont(TTFont('NotoSansItalic', font('NotoSans-Italic.ttf')))
-pdfmetrics.registerFont(TTFont('NotoSansBoldItalic', font('NotoSans-BoldItalic.ttf')))
-pdfmetrics.registerFontFamily(
-    'NotoSans',
-    normal='NotoSans',
-    bold='NotoSansBold',
-    italic='NotoSansItalic',
-    boldItalic='NotoSansBoldItalic'
-)
 
 DARK_GREY = Color(0.0154, 0.0154, 0, 0.7451)
 
@@ -69,6 +78,7 @@ FRAME_PADDING = 6
 
 
 def make_pdf(title, meta, content):
+    prepare_fonts()
     buffer = io.BytesIO()
     doc = SimpleDocTemplate(
         buffer,
diff --git a/hypha/settings/test.py b/hypha/settings/test.py
index ebbfa77f6b798ced0d9a1e45ac9ad48fd12430e1..d3a4abdea729367eddf73d8912f0a52a60f803a9 100644
--- a/hypha/settings/test.py
+++ b/hypha/settings/test.py
@@ -15,3 +15,7 @@ PROJECTS_AUTO_CREATE = True
 # Need this to ensure white noise doesn't kill the speed of testing
 # http://whitenoise.evans.io/en/latest/django.html#whitenoise-makes-my-tests-run-slow
 WHITENOISE_AUTOREFRESH = True
+
+PASSWORD_HASHERS = [
+    'django.contrib.auth.hashers.MD5PasswordHasher',
+]