Changed the object factory instances of nomcom private key and cert to be byte objects (matching the production settings), and fixed the issue with nomcom key handling under Py3 found by fenton@bluepopcorn.net. Did some renaming in nomcom/tests.py to better match setup/teardown function names to functionality.
- Legacy-Id: 17536
This commit is contained in:
parent
827ab69705
commit
dc4c05ec5b
ietf/nomcom
|
@ -13,7 +13,7 @@ from ietf.person.factories import PersonFactory, UserFactory
|
|||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
cert = '''-----BEGIN CERTIFICATE-----
|
||||
cert = b'''-----BEGIN CERTIFICATE-----
|
||||
MIIDHjCCAgagAwIBAgIJAKDCCjbQboJzMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV
|
||||
BAMMCE5vbUNvbTE1MB4XDTE0MDQwNDIxMTQxNFoXDTE2MDQwMzIxMTQxNFowEzER
|
||||
MA8GA1UEAwwITm9tQ29tMTUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||
|
@ -34,7 +34,7 @@ toX3j+FUe2UiUak3ACXdrOPSsFP0KRrFwuMnuHHXkGj/Uw==
|
|||
-----END CERTIFICATE-----
|
||||
'''
|
||||
|
||||
key = '''-----BEGIN PRIVATE KEY-----
|
||||
key = b'''-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2QXCsAitYSOgP
|
||||
Yor77zQnEeHuVqlcuhpH1wpKB+N6WcScA5N3AnX9uZEFOt6McJ+MCiHECdqDlH6n
|
||||
pQTJlpCpIVgAD4B6xzjRBRww8d3lClA/kKwsKzuX93RS0Uv30hAD6q9wjqK/m6vR
|
||||
|
|
|
@ -18,7 +18,7 @@ from django.conf import settings
|
|||
from django.core.files import File
|
||||
from django.contrib.auth.models import User
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.encoding import force_text, force_str
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
|
@ -52,12 +52,12 @@ def get_cert_files():
|
|||
client_test_cert_files = generate_cert()
|
||||
return client_test_cert_files
|
||||
|
||||
def build_test_public_keys_dir(obj):
|
||||
def setup_test_public_keys_dir(obj):
|
||||
obj.saved_nomcom_public_keys_dir = settings.NOMCOM_PUBLIC_KEYS_DIR
|
||||
obj.nomcom_public_keys_dir = obj.tempdir('nomcom-public-keys')
|
||||
settings.NOMCOM_PUBLIC_KEYS_DIR = obj.nomcom_public_keys_dir
|
||||
|
||||
def clean_test_public_keys_dir(obj):
|
||||
def teardown_test_public_keys_dir(obj):
|
||||
settings.NOMCOM_PUBLIC_KEYS_DIR = obj.saved_nomcom_public_keys_dir
|
||||
shutil.rmtree(obj.nomcom_public_keys_dir)
|
||||
|
||||
|
@ -70,7 +70,7 @@ class NomcomViewsTest(TestCase):
|
|||
return response
|
||||
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
nomcom_test_data()
|
||||
self.cert_file, self.privatekey_file = get_cert_files()
|
||||
self.year = NOMCOM_YEAR
|
||||
|
@ -99,7 +99,7 @@ class NomcomViewsTest(TestCase):
|
|||
self.public_nominate_newperson_url = reverse('ietf.nomcom.views.public_nominate_newperson', kwargs={'year': self.year})
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def access_member_url(self, url):
|
||||
login_testing_unauthorized(self, COMMUNITY_USER, url)
|
||||
|
@ -943,12 +943,12 @@ class NomineePositionStateSaveTest(TestCase):
|
|||
"""Tests for the NomineePosition save override method"""
|
||||
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
nomcom_test_data()
|
||||
self.nominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER)
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def test_state_autoset(self):
|
||||
"""Verify state is autoset correctly"""
|
||||
|
@ -978,13 +978,13 @@ class NomineePositionStateSaveTest(TestCase):
|
|||
class FeedbackTest(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
|
||||
nomcom_test_data()
|
||||
self.cert_file, self.privatekey_file = get_cert_files()
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def test_encrypted_comments(self):
|
||||
|
||||
|
@ -1011,7 +1011,7 @@ class FeedbackTest(TestCase):
|
|||
class ReminderTest(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
nomcom_test_data()
|
||||
self.nomcom = get_nomcom_by_year(NOMCOM_YEAR)
|
||||
self.cert_file, self.privatekey_file = get_cert_files()
|
||||
|
@ -1053,7 +1053,7 @@ class ReminderTest(TestCase):
|
|||
feedback.nominees.add(n)
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def test_is_time_to_send(self):
|
||||
self.nomcom.reminder_interval = 4
|
||||
|
@ -1109,14 +1109,14 @@ class ReminderTest(TestCase):
|
|||
class InactiveNomcomTests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
self.nc = NomComFactory.create(**nomcom_kwargs_for_year(group__state_id='conclude'))
|
||||
self.plain_person = PersonFactory.create()
|
||||
self.chair = self.nc.group.role_set.filter(name='chair').first().person
|
||||
self.member = self.nc.group.role_set.filter(name='member').first().person
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def test_feedback_closed(self):
|
||||
for view in ['ietf.nomcom.views.public_feedback', 'ietf.nomcom.views.private_feedback']:
|
||||
|
@ -1303,7 +1303,7 @@ class InactiveNomcomTests(TestCase):
|
|||
class FeedbackLastSeenTests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
self.nc = NomComFactory.create(**nomcom_kwargs_for_year())
|
||||
self.author = PersonFactory.create().email_set.first().address
|
||||
self.member = self.nc.group.role_set.filter(name='member').first().person
|
||||
|
@ -1322,7 +1322,7 @@ class FeedbackLastSeenTests(TestCase):
|
|||
self.second_from_now = now + datetime.timedelta(seconds=1)
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def test_feedback_index_badges(self):
|
||||
url = reverse('ietf.nomcom.views.view_feedback',kwargs={'year':self.nc.year()})
|
||||
|
@ -1409,13 +1409,13 @@ class FeedbackLastSeenTests(TestCase):
|
|||
class NewActiveNomComTests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
self.nc = NomComFactory.create(**nomcom_kwargs_for_year())
|
||||
self.chair = self.nc.group.role_set.filter(name='chair').first().person
|
||||
self.saved_days_to_expire_nomination_link = settings.DAYS_TO_EXPIRE_NOMINATION_LINK
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
settings.DAYS_TO_EXPIRE_NOMINATION_LINK = self.saved_days_to_expire_nomination_link
|
||||
|
||||
def test_help(self):
|
||||
|
@ -1485,7 +1485,7 @@ class NewActiveNomComTests(TestCase):
|
|||
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
response = self.client.post(url,{'key':key})
|
||||
response = self.client.post(url,{'key': force_str(key)})
|
||||
self.assertEqual(response.status_code,302)
|
||||
|
||||
def test_email_pasting(self):
|
||||
|
@ -1872,13 +1872,13 @@ class NoPublicKeyTests(TestCase):
|
|||
|
||||
class AcceptingTests(TestCase):
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
self.nc = NomComFactory(**nomcom_kwargs_for_year())
|
||||
self.plain_person = PersonFactory.create()
|
||||
self.member = self.nc.group.role_set.filter(name='member').first().person
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def test_public_accepting_nominations(self):
|
||||
url = reverse('ietf.nomcom.views.public_nominate',kwargs={'year':self.nc.year()})
|
||||
|
@ -1979,12 +1979,12 @@ class AcceptingTests(TestCase):
|
|||
|
||||
class ShowNomineeTests(TestCase):
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
self.nc = NomComFactory(**nomcom_kwargs_for_year())
|
||||
self.plain_person = PersonFactory.create()
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def test_feedback_pictures(self):
|
||||
url = reverse('ietf.nomcom.views.public_nominate',kwargs={'year':self.nc.year()})
|
||||
|
@ -2000,13 +2000,13 @@ class ShowNomineeTests(TestCase):
|
|||
|
||||
class TopicTests(TestCase):
|
||||
def setUp(self):
|
||||
build_test_public_keys_dir(self)
|
||||
setup_test_public_keys_dir(self)
|
||||
self.nc = NomComFactory(**nomcom_kwargs_for_year(populate_topics=False))
|
||||
self.plain_person = PersonFactory.create()
|
||||
self.chair = self.nc.group.role_set.filter(name='chair').first().person
|
||||
|
||||
def tearDown(self):
|
||||
clean_test_public_keys_dir(self)
|
||||
teardown_test_public_keys_dir(self)
|
||||
|
||||
def testAddEditListRemoveTopic(self):
|
||||
self.assertFalse(self.nc.topic_set.exists())
|
||||
|
|
|
@ -169,7 +169,7 @@ def retrieve_nomcom_private_key(request, year):
|
|||
|
||||
command = "%s bf -d -in /dev/stdin -k \"%s\" -a"
|
||||
code, out, error = pipe(command % (settings.OPENSSL_COMMAND,
|
||||
settings.SECRET_KEY), private_key.encode('utf-8'))
|
||||
settings.SECRET_KEY), private_key)
|
||||
if code != 0:
|
||||
log("openssl error: %s:\n Error %s: %s" %(command, code, error))
|
||||
return out
|
||||
|
@ -181,7 +181,7 @@ def store_nomcom_private_key(request, year, private_key):
|
|||
else:
|
||||
command = "%s bf -e -in /dev/stdin -k \"%s\" -a"
|
||||
code, out, error = pipe(command % (settings.OPENSSL_COMMAND,
|
||||
settings.SECRET_KEY), private_key.encode('utf-8'))
|
||||
settings.SECRET_KEY), private_key)
|
||||
if code != 0:
|
||||
log("openssl error: %s:\n Error %s: %s" %(command, code, error))
|
||||
if error:
|
||||
|
|
|
@ -9,15 +9,16 @@ import re
|
|||
from collections import OrderedDict, Counter
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.contrib import messages
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.urls import reverse
|
||||
from django.forms.models import modelformset_factory, inlineformset_factory
|
||||
from django.http import Http404, HttpResponseRedirect, HttpResponseForbidden
|
||||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from django.template.loader import render_to_string
|
||||
from django.forms.models import modelformset_factory, inlineformset_factory
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import force_bytes
|
||||
|
||||
|
||||
from ietf.dbtemplate.models import DBTemplate
|
||||
|
@ -119,7 +120,7 @@ def private_key(request, year):
|
|||
if request.method == 'POST':
|
||||
form = PrivateKeyForm(data=request.POST)
|
||||
if form.is_valid():
|
||||
store_nomcom_private_key(request, year, form.cleaned_data.get('key', ''))
|
||||
store_nomcom_private_key(request, year, force_bytes(form.cleaned_data.get('key', '')))
|
||||
return HttpResponseRedirect(back_url)
|
||||
else:
|
||||
form = PrivateKeyForm()
|
||||
|
|
Loading…
Reference in a new issue