Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2013-05-25 03:09:00 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2013-05-25 03:09:00 (GMT)
commitce750fcf473b780367f83c0f10d6a0adcf22bdef (patch)
tree448586ced81b6f1b9b82c5bfb6dc50641af1a6d8
parent76b568d2de4ebb90c110eb98d8d0bf6b80359660 (diff)
Push through the http.Client.call all HTTP headers
-rw-r--r--sugar_network/db/commands.py63
-rw-r--r--sugar_network/db/router.py45
-rw-r--r--sugar_network/node/master.py4
-rw-r--r--sugar_network/toolkit/http.py11
-rwxr-xr-xtests/integration/node_packages.py26
-rwxr-xr-xtests/units/db/router.py60
-rwxr-xr-xtests/units/node/obs.py12
-rwxr-xr-xtests/units/node/sync_master.py50
8 files changed, 141 insertions, 130 deletions
diff --git a/sugar_network/db/commands.py b/sugar_network/db/commands.py
index 6bc5224..07a733b 100644
--- a/sugar_network/db/commands.py
+++ b/sugar_network/db/commands.py
@@ -14,6 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging
+from email.utils import formatdate
from sugar_network import toolkit
from sugar_network.db import env
@@ -156,20 +157,66 @@ class Request(dict):
class Response(dict):
- #: Response payload length
- content_length = None
- #: Payload MIME type
- content_type = None
- #: UNIX seconds of last modification
- last_modified = None
-
def __init__(self, **kwargs):
"""Initialize parameters dictionary using named arguments."""
dict.__init__(self, kwargs)
+ @property
+ def content_length(self):
+ return int(self.get('content-length') or '0')
+
+ @content_length.setter
+ def content_length(self, value):
+ self.set('content-length', value)
+
+ @property
+ def content_type(self):
+ return self.get('content-type')
+
+ @content_type.setter
+ def content_type(self, value):
+ if value:
+ self.set('content-type', value)
+ elif 'content-type' in self:
+ self.remove('content-type')
+
+ @property
+ def last_modified(self):
+ return self.get('last-modified')
+
+ @last_modified.setter
+ def last_modified(self, value):
+ self.set('last-modified',
+ formatdate(value, localtime=False, usegmt=True))
+
+ def items(self):
+ result = []
+ for key, value in dict.items(self):
+ if type(value) in (list, tuple):
+ for i in value:
+ result.append((key, str(i)))
+ else:
+ result.append((key, str(value)))
+ return result
+
def __repr__(self):
args = ['%s=%r' % i for i in self.items()]
- return '<db.Response %s>' % ' '.join(args)
+ return '<Response %s>' % ' '.join(args)
+
+ def __getitem__(self, key):
+ return self.get(key.lower())
+
+ def __setitem__(self, key, value):
+ return self.set(key.lower(), value)
+
+ def __delitem__(self, key, value):
+ self.remove(key.lower())
+
+ def set(self, key, value):
+ dict.__setitem__(self, key, value)
+
+ def remove(self, key):
+ dict.__delitem__(self, key)
class CommandsProcessor(object):
diff --git a/sugar_network/db/router.py b/sugar_network/db/router.py
index 36ef5fc..bb8f701 100644
--- a/sugar_network/db/router.py
+++ b/sugar_network/db/router.py
@@ -20,7 +20,7 @@ import time
import types
import logging
import mimetypes
-from email.utils import parsedate, formatdate
+from email.utils import parsedate
from urlparse import parse_qsl, urlsplit
from bisect import bisect_left
from os.path import join, isfile, split, splitext
@@ -307,52 +307,9 @@ class _Request(Request):
class _Response(Response):
- # pylint: disable-msg=E0202
status = '200 OK'
- @property
- def content_length(self):
- return int(self.get('Content-Length') or '0')
-
- @content_length.setter
- def content_length(self, value):
- self['Content-Length'] = str(value)
-
- @property
- def content_type(self):
- return self.get('Content-Type')
-
- @content_type.setter
- def content_type(self, value):
- if value:
- self['Content-Type'] = value
- elif 'Content-Type' in self:
- del self['Content-Type']
-
- @property
- def last_modified(self):
- return self.get('Last-Modified')
-
- @last_modified.setter
- def last_modified(self, value):
- self['Last-Modified'] = formatdate(value, localtime=False, usegmt=True)
-
- def items(self):
- result = []
- for key, value in dict.items(self):
- if type(value) in (list, tuple):
- for i in value:
- result.append((key, str(i)))
- else:
- result.append((key, str(value)))
- return result
-
- def __repr__(self):
- args = ['status=%r' % self.status,
- ] + ['%s=%r' % i for i in self.items()]
- return '<db.Response %s>' % ' '.join(args)
-
def _parse_accept_language(accept_language):
if not accept_language:
diff --git a/sugar_network/node/master.py b/sugar_network/node/master.py
index 6871244..30f6ebd 100644
--- a/sugar_network/node/master.py
+++ b/sugar_network/node/master.py
@@ -243,7 +243,7 @@ class _Cookie(list):
self[op, layer].include(seq)
def store(self, response):
- response['Set-Cookie'] = []
+ response.set('set-cookie', [])
if self:
_logger.debug('Postpone %r in cookie', self)
self._set_cookie(response, 'sugar_network_pull',
@@ -280,7 +280,7 @@ class _Cookie(list):
def _set_cookie(self, response, name, value, age=3600):
cookie = '%s=%s; Max-Age=%s; HttpOnly' % (name, value, age)
- response['Set-Cookie'].append(cookie)
+ response.get('set-cookie').append(cookie)
def _unset_cookie(self, response, name):
self._set_cookie(response, name, 'unset_%s' % name, 0)
diff --git a/sugar_network/toolkit/http.py b/sugar_network/toolkit/http.py
index b2d676d..e51ac68 100644
--- a/sugar_network/toolkit/http.py
+++ b/sugar_network/toolkit/http.py
@@ -57,7 +57,7 @@ class Redirect(StatusPass):
def __init__(self, location):
StatusPass.__init__(self)
- self.headers = {'Location': location}
+ self.headers = {'location': location}
class BadRequest(Status):
@@ -235,9 +235,14 @@ class Client(object):
allow_redirects=request.allow_redirects)
if reply.status_code == 303:
- raise Redirect(reply.headers['Location'])
+ raise Redirect(reply.headers.get('location'))
if response is not None:
+ if 'transfer-encoding' in reply.headers:
+ # `requests` library handles encoding on its own
+ del reply.headers['transfer-encoding']
+ response.update(reply.headers)
+ """
if 'Content-Disposition' in reply.headers:
response['Content-Disposition'] = \
reply.headers['Content-Disposition']
@@ -245,6 +250,7 @@ class Client(object):
response.content_type = reply.headers['Content-Type']
if 'Content-Length' in reply.headers:
response.content_length = int(reply.headers['Content-Length'])
+ """
if reply.headers.get('Content-Type') == 'application/json':
return json.loads(reply.content)
@@ -328,6 +334,7 @@ def _sign(key_path, data):
import hashlib
from M2Crypto import DSA
key = DSA.load_key(key_path)
+ # pylint: disable-msg=E1121
return key.sign_asn1(hashlib.sha1(data).digest()).encode('hex')
diff --git a/tests/integration/node_packages.py b/tests/integration/node_packages.py
index 565df1a..1ec54c7 100755
--- a/tests/integration/node_packages.py
+++ b/tests/integration/node_packages.py
@@ -94,10 +94,10 @@ class NodePackagesSlaveTest(tests.Test):
self.assertEqual(
'{"arch": [{"path": "rpm", "name": "rpm"}]}',
- conn.get(['packages', 'presolve:OLPC-11.3.1', 'package']))
+ conn.get(['packages', 'presolve', 'OLPC-11.3.1', 'package']))
self.assertEqual(
'package_content',
- urllib2.urlopen('http://localhost:8100/packages/presolve:OLPC-11.3.1/rpm').read())
+ urllib2.urlopen('http://localhost:8100/packages/presolve/OLPC-11.3.1/rpm').read())
pid = self.popen([join(src_root, 'sugar-network-client'), '-F', 'start',
'--api-url=http://localhost:8100', '--cachedir=master.client/tmp',
@@ -111,8 +111,8 @@ class NodePackagesSlaveTest(tests.Test):
if ipc.get(cmd='status')['route'] == 'offline':
self.wait_for_events(ipc, event='inline', state='online').wait()
self.assertEqual(
- {"arch": [{"path": "rpm", "name": "rpm"}]},
- ipc.get(['packages', 'presolve:OLPC-11.3.1', 'package']))
+ '{"arch": [{"path": "rpm", "name": "rpm"}]}',
+ ipc.get(['packages', 'presolve', 'OLPC-11.3.1', 'package']))
self.waitpid(pid, signal.SIGINT)
# From slave
@@ -132,10 +132,10 @@ class NodePackagesSlaveTest(tests.Test):
self.assertEqual(
'{"arch": [{"path": "rpm", "name": "rpm"}]}',
- conn.get(['packages', 'presolve:OLPC-11.3.1', 'package']))
+ conn.get(['packages', 'presolve', 'OLPC-11.3.1', 'package']))
self.assertEqual(
'package_content',
- urllib2.urlopen('http://localhost:8101/packages/presolve:OLPC-11.3.1/rpm').read())
+ urllib2.urlopen('http://localhost:8101/packages/presolve/OLPC-11.3.1/rpm').read())
pid = self.popen([join(src_root, 'sugar-network-client'), '-F', 'start',
'--api-url=http://localhost:8101', '--cachedir=master.client/tmp',
@@ -149,8 +149,8 @@ class NodePackagesSlaveTest(tests.Test):
if ipc.get(cmd='status')['route'] == 'offline':
self.wait_for_events(ipc, event='inline', state='online').wait()
self.assertEqual(
- {"arch": [{"path": "rpm", "name": "rpm"}]},
- ipc.get(['packages', 'presolve:OLPC-11.3.1', 'package']))
+ '{"arch": [{"path": "rpm", "name": "rpm"}]}',
+ ipc.get(['packages', 'presolve', 'OLPC-11.3.1', 'package']))
self.waitpid(pid, signal.SIGINT)
# From personal slave
@@ -180,17 +180,17 @@ class NodePackagesSlaveTest(tests.Test):
self.assertEqual(
'{"arch": [{"path": "rpm", "name": "rpm"}]}',
- conn.get(['packages', 'presolve:OLPC-11.3.1', 'package']))
+ conn.get(['packages', 'presolve', 'OLPC-11.3.1', 'package']))
self.assertEqual(
'package_content',
- urllib2.urlopen('http://localhost:8102/packages/presolve:OLPC-11.3.1/rpm').read())
+ urllib2.urlopen('http://localhost:8102/packages/presolve/OLPC-11.3.1/rpm').read())
self.assertEqual(
- {"arch": [{"path": "rpm", "name": "rpm"}]},
- ipc.get(['packages', 'presolve:OLPC-11.3.1', 'package']))
+ '{"arch": [{"path": "rpm", "name": "rpm"}]}',
+ ipc.get(['packages', 'presolve', 'OLPC-11.3.1', 'package']))
self.assertEqual(
'package_content',
- urllib2.urlopen('http://localhost:8202/packages/presolve:OLPC-11.3.1/rpm').read())
+ urllib2.urlopen('http://localhost:8202/packages/presolve/OLPC-11.3.1/rpm').read())
if __name__ == '__main__':
diff --git a/tests/units/db/router.py b/tests/units/db/router.py
index 174b2db..5e9b2a5 100755
--- a/tests/units/db/router.py
+++ b/tests/units/db/router.py
@@ -89,7 +89,7 @@ class RouterTest(tests.Test):
class Status(http.Status):
status = '001 Status'
- headers = {'Status-Header': 'value'}
+ headers = {'status-header': 'value'}
class CommandsProcessor(db.CommandsProcessor):
@@ -109,7 +109,7 @@ class RouterTest(tests.Test):
self.assertEqual(error, ''.join([i for i in reply]))
self.assertEqual([
'001 Status',
- {'Content-Length': str(len(error)), 'Content-Type': 'application/json', 'Status-Header': 'value'},
+ {'content-length': str(len(error)), 'content-type': 'application/json', 'status-header': 'value'},
],
response)
@@ -117,7 +117,7 @@ class RouterTest(tests.Test):
class Status(http.Status):
status = '001 Status'
- headers = {'Status-Header': 'value'}
+ headers = {'status-header': 'value'}
result = 'result'
class CommandsProcessor(db.CommandsProcessor):
@@ -138,7 +138,7 @@ class RouterTest(tests.Test):
self.assertEqual(error, ''.join([i for i in reply]))
self.assertEqual([
'001 Status',
- {'Content-Length': str(len(error)), 'Status-Header': 'value'},
+ {'content-length': str(len(error)), 'status-header': 'value'},
],
response)
@@ -146,7 +146,7 @@ class RouterTest(tests.Test):
class StatusPass(http.StatusPass):
status = '001 StatusPass'
- headers = {'StatusPass-Header': 'value'}
+ headers = {'statuspass-header': 'value'}
result = 'result'
class CommandsProcessor(db.CommandsProcessor):
@@ -167,7 +167,7 @@ class RouterTest(tests.Test):
self.assertEqual(error, ''.join([i for i in reply]))
self.assertEqual([
'001 StatusPass',
- {'Content-Length': str(len(error)), 'StatusPass-Header': 'value'},
+ {'content-length': str(len(error)), 'statuspass-header': 'value'},
],
response)
@@ -192,7 +192,7 @@ class RouterTest(tests.Test):
self.assertEqual(error, ''.join([i for i in reply]))
self.assertEqual([
'303 See Other',
- {'Content-Length': '0', 'Location': URL},
+ {'content-length': '0', 'location': URL},
],
response)
@@ -217,7 +217,7 @@ class RouterTest(tests.Test):
self.assertEqual(result, ''.join([i for i in reply]))
self.assertEqual([
'200 OK',
- {'Last-Modified': formatdate(10, localtime=False, usegmt=True), 'Content-Length': str(len(result))},
+ {'last-modified': formatdate(10, localtime=False, usegmt=True), 'content-length': str(len(result))},
],
response)
@@ -244,7 +244,7 @@ class RouterTest(tests.Test):
self.assertEqual(result, ''.join([i for i in reply]))
self.assertEqual([
'200 OK',
- {'Content-Length': str(len(result))},
+ {'content-length': str(len(result))},
],
response)
@@ -259,7 +259,7 @@ class RouterTest(tests.Test):
self.assertEqual(result, ''.join([i for i in reply]))
self.assertEqual([
'200 OK',
- {'Content-Length': str(len(result))},
+ {'content-length': str(len(result))},
],
response)
@@ -274,7 +274,7 @@ class RouterTest(tests.Test):
self.assertEqual(result, ''.join([i for i in reply]))
self.assertEqual([
'304 Not Modified',
- {'Content-Length': str(len(result))},
+ {'content-length': str(len(result))},
],
response)
@@ -345,10 +345,10 @@ class RouterTest(tests.Test):
self.assertEqual([
'200 OK',
{
- 'Last-Modified': formatdate(os.stat(local_path).st_mtime, localtime=False, usegmt=True),
- 'Content-Length': str(len(result)),
- 'Content-Type': 'image/png',
- 'Content-Disposition': 'attachment; filename="missing.png"',
+ 'last-modified': formatdate(os.stat(local_path).st_mtime, localtime=False, usegmt=True),
+ 'content-length': str(len(result)),
+ 'content-type': 'image/png',
+ 'content-disposition': 'attachment; filename="missing.png"',
}
],
response)
@@ -370,10 +370,10 @@ class RouterTest(tests.Test):
self.assertEqual([
'200 OK',
{
- 'Last-Modified': formatdate(mtime, localtime=False, usegmt=True),
- 'Content-Length': str(len(result)),
- 'Content-Type': 'image/png',
- 'Content-Disposition': 'attachment; filename="missing.png"',
+ 'last-modified': formatdate(mtime, localtime=False, usegmt=True),
+ 'content-length': str(len(result)),
+ 'content-type': 'image/png',
+ 'content-disposition': 'attachment; filename="missing.png"',
}
],
response)
@@ -389,7 +389,7 @@ class RouterTest(tests.Test):
self.assertEqual(result, ''.join([i for i in reply]))
self.assertEqual([
'304 Not Modified',
- {'Content-Length': str(len(result))},
+ {'content-length': str(len(result))},
],
response)
@@ -404,7 +404,7 @@ class RouterTest(tests.Test):
self.assertEqual(result, ''.join([i for i in reply]))
self.assertEqual([
'304 Not Modified',
- {'Content-Length': str(len(result))},
+ {'content-length': str(len(result))},
],
response)
@@ -429,7 +429,7 @@ class RouterTest(tests.Test):
self.assertEqual(result, ''.join([i for i in reply]))
self.assertEqual([
'200 OK',
- {'Content-Length': str(len(result))},
+ {'content-length': str(len(result))},
],
response)
@@ -477,10 +477,10 @@ class RouterTest(tests.Test):
self.assertEqual([
'200 OK',
{
- 'Last-Modified': formatdate(os.stat('blob.data').st_mtime, localtime=False, usegmt=True),
- 'Content-Length': str(len(result)),
- 'Content-Type': 'application/octet-stream',
- 'Content-Disposition': 'attachment; filename="Foo.obj"',
+ 'last-modified': formatdate(os.stat('blob.data').st_mtime, localtime=False, usegmt=True),
+ 'content-length': str(len(result)),
+ 'content-type': 'application/octet-stream',
+ 'content-disposition': 'attachment; filename="Foo.obj"',
}
],
response)
@@ -497,10 +497,10 @@ class RouterTest(tests.Test):
self.assertEqual([
'200 OK',
{
- 'Last-Modified': formatdate(os.stat('blob.data').st_mtime, localtime=False, usegmt=True),
- 'Content-Length': str(len(result)),
- 'Content-Type': 'application/octet-stream',
- 'Content-Disposition': 'attachment; filename="foo.bar"',
+ 'last-modified': formatdate(os.stat('blob.data').st_mtime, localtime=False, usegmt=True),
+ 'content-length': str(len(result)),
+ 'content-type': 'application/octet-stream',
+ 'content-disposition': 'attachment; filename="foo.bar"',
}
],
response)
diff --git a/tests/units/node/obs.py b/tests/units/node/obs.py
index a46da8f..aaf4030 100755
--- a/tests/units/node/obs.py
+++ b/tests/units/node/obs.py
@@ -133,18 +133,18 @@ class ObsTest(tests.Test):
{'path': 'pkg1-2.prm', 'name': 'pkg1-2'},
],
},
- json.load(file('packages/presolve::OLPC-11.3.1/pkg1')))
+ json.load(file('packages/presolve/OLPC-11.3.1/pkg1')))
self.assertEqual({
'arch': [
{'path': 'pkg2-1.prm', 'name': 'pkg2-1'},
{'path': 'pkg2-2.prm', 'name': 'pkg2-2'},
],
},
- json.load(file('packages/presolve::OLPC-11.3.1/pkg2')))
- self.assertEqual('1', file('packages/presolve::OLPC-11.3.1/pkg1-1.prm').read())
- self.assertEqual('2', file('packages/presolve::OLPC-11.3.1/pkg1-2.prm').read())
- self.assertEqual('3', file('packages/presolve::OLPC-11.3.1/pkg2-1.prm').read())
- self.assertEqual('4', file('packages/presolve::OLPC-11.3.1/pkg2-2.prm').read())
+ json.load(file('packages/presolve/OLPC-11.3.1/pkg2')))
+ self.assertEqual('1', file('packages/presolve/OLPC-11.3.1/pkg1-1.prm').read())
+ self.assertEqual('2', file('packages/presolve/OLPC-11.3.1/pkg1-2.prm').read())
+ self.assertEqual('3', file('packages/presolve/OLPC-11.3.1/pkg2-1.prm').read())
+ self.assertEqual('4', file('packages/presolve/OLPC-11.3.1/pkg2-2.prm').read())
class Response(object):
diff --git a/tests/units/node/sync_master.py b/tests/units/node/sync_master.py
index 920d502..5b43241 100755
--- a/tests/units/node/sync_master.py
+++ b/tests/units/node/sync_master.py
@@ -176,7 +176,7 @@ class SyncMasterTest(tests.Test):
'sugar_network_sent=unset_sugar_network_sent; Max-Age=0; HttpOnly',
'sugar_network_delay=unset_sugar_network_delay; Max-Age=0; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_push_WithCookies(self):
ts = int(time.time())
@@ -221,7 +221,7 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({None: [[1, 1]]})),
'sugar_network_delay=0; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_push_CollectCookies(self):
request = Request()
@@ -248,7 +248,7 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({None: []})),
'sugar_network_delay=0; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
request = Request()
request.environ['HTTP_COOKIE'] = 'sugar_network_pull=%s' % \
@@ -272,7 +272,7 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({None: []})),
'sugar_network_delay=0; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_push_DoNotExcludeAcksFromCookies(self):
ts = int(time.time())
@@ -310,7 +310,7 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({None: [[1, 1]]})),
'sugar_network_delay=0; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_pull(self):
self.volume['document'].create(guid='1', prop='1', ctime=1, mtime=1)
@@ -331,11 +331,11 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({})),
'sugar_network_delay=30; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
coroutine.sleep(.5)
request = Request()
- request.environ['HTTP_COOKIE'] = response.get('Set-Cookie')[0]
+ request.environ['HTTP_COOKIE'] = response.get('set-cookie')[0]
response = db.Response()
reply = StringIO()
for chunk in self.master.pull(request, response):
@@ -367,10 +367,10 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({})),
'sugar_network_delay=0; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
request = Request()
- request.environ['HTTP_COOKIE'] = response.get('Set-Cookie')[0]
+ request.environ['HTTP_COOKIE'] = response.get('set-cookie')[0]
response = db.Response()
reply = StringIO()
for chunk in self.master.pull(request, response):
@@ -390,7 +390,7 @@ class SyncMasterTest(tests.Test):
'sugar_network_sent=unset_sugar_network_sent; Max-Age=0; HttpOnly',
'sugar_network_delay=unset_sugar_network_delay; Max-Age=0; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_pull_EmptyPackets(self):
self.master._pulls = {
@@ -410,12 +410,12 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({})),
'sugar_network_delay=30; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
coroutine.sleep(.5)
self.assertEqual(1, len([i for i in glob('tmp/pulls/*.tag')]))
request = Request()
- request.environ['HTTP_COOKIE'] = response.get('Set-Cookie')[0]
+ request.environ['HTTP_COOKIE'] = response.get('set-cookie')[0]
response = db.Response()
self.assertEqual(None, self.master.pull(request, response))
self.assertEqual([
@@ -423,7 +423,7 @@ class SyncMasterTest(tests.Test):
'sugar_network_sent=unset_sugar_network_sent; Max-Age=0; HttpOnly',
'sugar_network_delay=unset_sugar_network_delay; Max-Age=0; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
self.assertEqual(0, len([i for i in glob('tmp/pulls/*.tag')]))
def test_pull_FullClone(self):
@@ -447,11 +447,11 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({})),
'sugar_network_delay=30; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
coroutine.sleep(.5)
request = Request()
- request.environ['HTTP_COOKIE'] = response.get('Set-Cookie')[0]
+ request.environ['HTTP_COOKIE'] = response.get('set-cookie')[0]
response = db.Response()
reply = StringIO()
for chunk in self.master.pull(request, response):
@@ -468,10 +468,10 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({})),
'sugar_network_delay=0; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
request = Request()
- request.environ['HTTP_COOKIE'] = response.get('Set-Cookie')[0]
+ request.environ['HTTP_COOKIE'] = response.get('set-cookie')[0]
response = db.Response()
reply = StringIO()
for chunk in self.master.pull(request, response):
@@ -486,7 +486,7 @@ class SyncMasterTest(tests.Test):
'sugar_network_sent=unset_sugar_network_sent; Max-Age=0; HttpOnly',
'sugar_network_delay=unset_sugar_network_delay; Max-Age=0; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_push_SetSentCookies(self):
request = Request()
@@ -536,7 +536,7 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({'1': [], '2': [], '3': [[1, 2]]})),
'sugar_network_delay=0; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_pull_ExcludeSentCookies(self):
self.volume['document'].create(guid='1', prop='1', ctime=1, mtime=1)
@@ -557,11 +557,11 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({'slave': [[2, 2]]})),
'sugar_network_delay=30; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
coroutine.sleep(.5)
request = Request()
- request.environ['HTTP_COOKIE'] = ';'.join(response.get('Set-Cookie'))
+ request.environ['HTTP_COOKIE'] = ';'.join(response.get('set-cookie'))
reply = StringIO()
for chunk in self.master.pull(request, response):
reply.write(chunk)
@@ -584,7 +584,7 @@ class SyncMasterTest(tests.Test):
'sugar_network_sent=unset_sugar_network_sent; Max-Age=0; HttpOnly',
'sugar_network_delay=unset_sugar_network_delay; Max-Age=0; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def test_pull_DoNotExcludeSentCookiesForMultipleNodes(self):
self.volume['document'].create(guid='1', prop='1', ctime=1, mtime=1)
@@ -605,11 +605,11 @@ class SyncMasterTest(tests.Test):
base64.b64encode(json.dumps({'slave': [[2, 2]], 'other': []})),
'sugar_network_delay=30; Max-Age=3600; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
coroutine.sleep(.5)
request = Request()
- request.environ['HTTP_COOKIE'] = ';'.join(response.get('Set-Cookie'))
+ request.environ['HTTP_COOKIE'] = ';'.join(response.get('set-cookie'))
reply = StringIO()
for chunk in self.master.pull(request, response):
reply.write(chunk)
@@ -638,7 +638,7 @@ class SyncMasterTest(tests.Test):
'sugar_network_sent=unset_sugar_network_sent; Max-Age=0; HttpOnly',
'sugar_network_delay=unset_sugar_network_delay; Max-Age=0; HttpOnly',
],
- response.get('Set-Cookie'))
+ response.get('set-cookie'))
def __test_pull_LimittedPull(self):
pass