Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
sudo: false
language: python
python:
- "2.7"
- "3.5"
env:
- TOX_ENV=py26
- TOX_ENV=py27
- TOX_ENV=py33
- TOX_ENV=py34
- TOX_ENV=py35
- TOX_ENV=flake8
install:
- pip install tox
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile-py3
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.4
FROM python:3.5
MAINTAINER Joffrey F <joffrey@docker.com>

RUN mkdir /home/docker-py
Expand Down
2 changes: 1 addition & 1 deletion docker/api/container.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ def kill(self, container, signal=None):
url = self._url("/containers/{0}/kill", container)
params = {}
if signal is not None:
params['signal'] = signal
params['signal'] = int(signal)
res = self._post(url, params=params)

self._raise_for_status(res)
Expand Down
10 changes: 2 additions & 8 deletions docker/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -546,12 +546,6 @@ def datetime_to_timestamp(dt):
return delta.seconds + delta.days * 24 * 3600


def longint(n):
if six.PY3:
return int(n)
return long(n)


def parse_bytes(s):
Copy link
Author

@graingert graingert May 19, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all this does is allow users to enter their storage size in pounds (300lb) on python 2

if isinstance(s, six.integer_types + (float,)):
return s
Expand All @@ -574,15 +568,15 @@ def parse_bytes(s):

if suffix in units.keys() or suffix.isdigit():
try:
digits = longint(digits_part)
digits = int(digits_part)
except ValueError:
raise errors.DockerException(
'Failed converting the string value for memory ({0}) to'
' an integer.'.format(digits_part)
)

# Reconvert to long for the final result
s = longint(digits * units[suffix])
s = int(digits * units[suffix])
else:
raise errors.DockerException(
'The specified value for memory ({0}) should specify the'
Expand Down
4 changes: 2 additions & 2 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ correct value (e.g `gzip`).
```

**Raises:** [TypeError](
https://docs.python.org/3.4/library/exceptions.html#TypeError) if `path` nor
https://docs.python.org/3.5/library/exceptions.html#TypeError) if `path` nor
`fileobj` are specified

## commit
Expand Down Expand Up @@ -207,7 +207,7 @@ of the created container in bytes) or a string with a units identification char
character, bytes are assumed as an intended unit.

`volumes_from` and `dns` arguments raise [TypeError](
https://docs.python.org/3.4/library/exceptions.html#TypeError) exception if
https://docs.python.org/3.5/library/exceptions.html#TypeError) exception if
they are used against v1.10 and above of the Docker remote API. Those
arguments should be passed as part of the `host_config` dictionary.

Expand Down
2 changes: 1 addition & 1 deletion docs/tls.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ first.*
* ca_cert (str): Path to CA cert file
* verify (bool or str): This can be `False` or a path to a CA Cert file
* ssl_version (int): A valid [SSL version](
https://docs.python.org/3.4/library/ssl.html#ssl.PROTOCOL_TLSv1)
https://docs.python.org/3.5/library/ssl.html#ssl.PROTOCOL_TLSv1)
* assert_hostname (bool): Verify hostname of docker daemon

### configure_client
Expand Down
4 changes: 4 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
':python_version < "3.3"': 'ipaddress >= 1.0.16',
}

version = None
exec(open('docker/version.py').read())

with open('./test-requirements.txt') as test_reqs_txt:
Expand All @@ -42,10 +43,13 @@
'Intended Audience :: Developers',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Topic :: Utilities',
'License :: OSI Approved :: Apache Software License',
],
Expand Down
4 changes: 2 additions & 2 deletions test-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
mock==1.0.1
pytest==2.7.2
pytest==2.9.1
coverage==3.7.1
pytest-cov==2.1.0
flake8==2.4.1
flake8==2.4.1
70 changes: 19 additions & 51 deletions tests/unit/utils_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,56 +299,30 @@ def test_convert_volume_binds_no_mode(self):
self.assertEqual(convert_volume_binds(data), ['/mnt/vol1:/data:rw'])

def test_convert_volume_binds_unicode_bytes_input(self):
if six.PY2:
expected = [unicode('/mnt/지연:/unicode/박:rw', 'utf-8')]

data = {
'/mnt/지연': {
'bind': '/unicode/박',
'mode': 'rw'
}
}
self.assertEqual(
convert_volume_binds(data), expected
)
else:
expected = ['/mnt/지연:/unicode/박:rw']
expected = [u'/mnt/지연:/unicode/박:rw']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we want to remove the tests for PY2. Having them in separate test cases with pytest.mark.skip would be fine.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They're still there. I just combined the 3K and 2 tests

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I missed that, sounds good.


data = {
bytes('/mnt/지연', 'utf-8'): {
'bind': bytes('/unicode/박', 'utf-8'),
'mode': 'rw'
}
data = {
u'/mnt/지연'.encode('utf-8'): {
'bind': u'/unicode/박'.encode('utf-8'),
'mode': 'rw'
}
self.assertEqual(
convert_volume_binds(data), expected
)
}
self.assertEqual(
convert_volume_binds(data), expected
)

def test_convert_volume_binds_unicode_unicode_input(self):
if six.PY2:
expected = [unicode('/mnt/지연:/unicode/박:rw', 'utf-8')]

data = {
unicode('/mnt/지연', 'utf-8'): {
'bind': unicode('/unicode/박', 'utf-8'),
'mode': 'rw'
}
}
self.assertEqual(
convert_volume_binds(data), expected
)
else:
expected = ['/mnt/지연:/unicode/박:rw']
expected = [u'/mnt/지연:/unicode/박:rw']

data = {
'/mnt/지연': {
'bind': '/unicode/박',
'mode': 'rw'
}
data = {
u'/mnt/지연': {
'bind': u'/unicode/박',
'mode': 'rw'
}
self.assertEqual(
convert_volume_binds(data), expected
)
}
self.assertEqual(
convert_volume_binds(data), expected
)


class ParseEnvFileTest(base.BaseTestCase):
Expand Down Expand Up @@ -612,13 +586,7 @@ def test_create_ipam_config(self):
class SplitCommandTest(base.BaseTestCase):

def test_split_command_with_unicode(self):
if six.PY2:
self.assertEqual(
split_command(unicode('echo μμ', 'utf-8')),
['echo', 'μμ']
)
else:
self.assertEqual(split_command('echo μμ'), ['echo', 'μμ'])
self.assertEqual(split_command(u'echo μμ'), ['echo', 'μμ'])

@pytest.mark.skipif(six.PY3, reason="shlex doesn't support bytes in py3")
def test_split_command_with_bytes(self):
Expand Down
4 changes: 2 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = py26, py27, py33, py34, flake8
envlist = py26, py27, py33, py34, py35, flake8
skipsdist=True

[testenv]
Expand All @@ -11,5 +11,5 @@ deps =
-r{toxinidir}/requirements.txt

[testenv:flake8]
commands = flake8 docker tests
commands = flake8 docker tests setup.py
deps = flake8