-# -*- coding: utf-8 -*-
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
-from urllib import quote, urlencode
-from urlparse import parse_qs
+from unittest.mock import patch
+from urllib.parse import quote, urlencode, parse_qs
from django.contrib.auth.models import User
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase
from django.test.utils import override_settings
from django.contrib.auth.models import User
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase
from django.test.utils import override_settings
from catalogue.models import Book, Tag
from picture.forms import PictureImportForm
from picture.models import Picture
import picture.tests
from catalogue.models import Book, Tag
from picture.forms import PictureImportForm
from picture.models import Picture
import picture.tests
def load_json(self, url):
content = self.client.get(url).content
try:
def load_json(self, url):
content = self.client.get(url).content
try:
filename = path.join(path.dirname(__file__), 'res', 'responses', name)
with open(filename) as f:
good_content = f.read().rstrip()
filename = path.join(path.dirname(__file__), 'res', 'responses', name)
with open(filename) as f:
good_content = f.read().rstrip()
- self.assert_slugs(
- '/api/filter-books/?preview=true',
- ['grandchild'])
+ Book.objects.filter(slug='grandchild').update(preview=True)
+ # Skipping: we don't allow previewed books in filtered list.
+ #self.assert_slugs(
+ # '/api/filter-books/?preview=true',
+ # ['grandchild'])
sign = quote(h)
query = "{}&oauth_signature={}".format(base_query, sign)
response = self.client.get('/api/oauth/request_token/?' + query)
sign = quote(h)
query = "{}&oauth_signature={}".format(base_query, sign)
response = self.client.get('/api/oauth/request_token/?' + query)
request_token = request_token_data['oauth_token'][0]
request_token_secret = request_token_data['oauth_token_secret'][0]
# Request token authorization.
self.client.login(username='test', password='test')
request_token = request_token_data['oauth_token'][0]
request_token_secret = request_token_data['oauth_token_secret'][0]
# Request token authorization.
self.client.login(username='test', password='test')
post_data = response.context['form'].initial
response = self.client.post('/api/oauth/authorize/?' + urlencode(post_data))
post_data = response.context['form'].initial
response = self.client.post('/api/oauth/authorize/?' + urlencode(post_data))
- quote(self.consumer_secret) + '&' +
- quote(request_token_secret, safe=''),
- raw,
+ (quote(self.consumer_secret) + '&' +
+ quote(request_token_secret, safe='')).encode('latin1'),
+ raw.encode('latin1'),
- query = u"{}&oauth_signature={}".format(base_query, sign)
- response = self.client.get(u'/api/oauth/access_token/?' + query)
- access_token_data = parse_qs(response.content)
+ query = "{}&oauth_signature={}".format(base_query, sign)
+ response = self.client.get('/api/oauth/access_token/?' + query)
+ access_token_data = parse_qs(response.content.decode('latin1'))
for (k, v) in sorted(sign_params.items())))
])
auth_params["oauth_signature"] = quote(b64encode(hmac.new(
for (k, v) in sorted(sign_params.items())))
])
auth_params["oauth_signature"] = quote(b64encode(hmac.new(
auth = 'OAuth realm="API", ' + ', '.join(
'{}="{}"'.format(k, v) for (k, v) in auth_params.items())
auth = 'OAuth realm="API", ' + ', '.join(
'{}="{}"'.format(k, v) for (k, v) in auth_params.items())
self.assert_slugs('/api/preview/', ['grandchild'])
self.assertEqual(
self.signed_json('/api/username/'),
self.assert_slugs('/api/preview/', ['grandchild'])
self.assertEqual(
self.signed_json('/api/username/'),
self.assertEqual(
self.signed_json('/api/username/'),
{"username": "test", "premium": True})
self.assertEqual(
self.signed_json('/api/username/'),
{"username": "test", "premium": True})