Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
docker-py
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
docker-py
Commits
89a1ffa7
Kaydet (Commit)
89a1ffa7
authored
Eki 03, 2016
tarafından
Joffrey F
Kaydeden (comit)
GitHub
Eki 03, 2016
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Sade Fark
Merge pull request #1217 from bfirsh/reorganisation-base-tests
Move BaseTestCase to BaseIntegrationTest
üst
2b34e0b8
69e992ec
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
182 additions
and
203 deletions
+182
-203
client.py
docker/client.py
+3
-1
base.py
tests/base.py
+0
-12
helpers.py
tests/helpers.py
+8
-89
api_test.py
tests/integration/api_test.py
+13
-14
base.py
tests/integration/base.py
+88
-0
build_test.py
tests/integration/build_test.py
+3
-3
conftest.py
tests/integration/conftest.py
+2
-3
container_test.py
tests/integration/container_test.py
+22
-23
errors_test.py
tests/integration/errors_test.py
+3
-6
exec_test.py
tests/integration/exec_test.py
+2
-4
image_test.py
tests/integration/image_test.py
+6
-8
network_test.py
tests/integration/network_test.py
+3
-3
regression_test.py
tests/integration/regression_test.py
+2
-4
service_test.py
tests/integration/service_test.py
+3
-6
swarm_test.py
tests/integration/swarm_test.py
+3
-6
volume_test.py
tests/integration/volume_test.py
+3
-3
container_test.py
tests/unit/container_test.py
+1
-1
network_test.py
tests/unit/network_test.py
+7
-7
volume_test.py
tests/unit/volume_test.py
+10
-10
No files found.
docker/client.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -108,8 +108,10 @@ class Client(
@classmethod
def
from_env
(
cls
,
**
kwargs
):
timeout
=
kwargs
.
pop
(
'timeout'
,
None
)
version
=
kwargs
.
pop
(
'version'
,
None
)
return
cls
(
version
=
version
,
**
kwargs_from_env
(
**
kwargs
))
return
cls
(
timeout
=
timeout
,
version
=
version
,
**
kwargs_from_env
(
**
kwargs
))
def
_retrieve_server_version
(
self
):
try
:
...
...
tests/base.py
Dosyayı görüntüle @
89a1ffa7
import
sys
import
unittest
import
pytest
import
six
import
docker
class
BaseTestCase
(
unittest
.
TestCase
):
def
assertIn
(
self
,
object
,
collection
):
...
...
@@ -14,15 +11,6 @@ class BaseTestCase(unittest.TestCase):
return
super
(
BaseTestCase
,
self
)
.
assertIn
(
object
,
collection
)
def
requires_api_version
(
version
):
return
pytest
.
mark
.
skipif
(
docker
.
utils
.
version_lt
(
docker
.
constants
.
DEFAULT_DOCKER_API_VERSION
,
version
),
reason
=
"API version is too low (< {0})"
.
format
(
version
)
)
class
Cleanup
(
object
):
if
sys
.
version_info
<
(
2
,
7
):
# Provide a basic implementation of addCleanup for Python < 2.7
...
...
tests/helpers.py
Dosyayı görüntüle @
89a1ffa7
import
os
import
os.path
import
shutil
import
tarfile
import
tempfile
import
unittest
import
docker
import
six
BUSYBOX
=
'busybox:buildroot-2014.02'
EXEC_DRIVER
=
[]
import
pytest
def
make_tree
(
dirs
,
files
):
...
...
@@ -45,86 +40,10 @@ def untar_file(tardata, filename):
return
result
def
docker_client
(
**
kwargs
):
return
docker
.
Client
(
**
docker_client_kwargs
(
**
kwargs
))
def
docker_client_kwargs
(
**
kwargs
):
client_kwargs
=
docker
.
utils
.
kwargs_from_env
(
assert_hostname
=
False
)
client_kwargs
.
update
(
kwargs
)
return
client_kwargs
class
BaseTestCase
(
unittest
.
TestCase
):
tmp_imgs
=
[]
tmp_containers
=
[]
tmp_folders
=
[]
tmp_volumes
=
[]
def
setUp
(
self
):
if
six
.
PY2
:
self
.
assertRegex
=
self
.
assertRegexpMatches
self
.
assertCountEqual
=
self
.
assertItemsEqual
self
.
client
=
docker_client
(
timeout
=
60
)
self
.
tmp_imgs
=
[]
self
.
tmp_containers
=
[]
self
.
tmp_folders
=
[]
self
.
tmp_volumes
=
[]
self
.
tmp_networks
=
[]
def
tearDown
(
self
):
for
img
in
self
.
tmp_imgs
:
try
:
self
.
client
.
remove_image
(
img
)
except
docker
.
errors
.
APIError
:
pass
for
container
in
self
.
tmp_containers
:
try
:
self
.
client
.
stop
(
container
,
timeout
=
1
)
self
.
client
.
remove_container
(
container
)
except
docker
.
errors
.
APIError
:
pass
for
network
in
self
.
tmp_networks
:
try
:
self
.
client
.
remove_network
(
network
)
except
docker
.
errors
.
APIError
:
pass
for
folder
in
self
.
tmp_folders
:
shutil
.
rmtree
(
folder
)
for
volume
in
self
.
tmp_volumes
:
try
:
self
.
client
.
remove_volume
(
volume
)
except
docker
.
errors
.
APIError
:
pass
self
.
client
.
close
()
def
run_container
(
self
,
*
args
,
**
kwargs
):
container
=
self
.
client
.
create_container
(
*
args
,
**
kwargs
)
self
.
tmp_containers
.
append
(
container
)
self
.
client
.
start
(
container
)
exitcode
=
self
.
client
.
wait
(
container
)
if
exitcode
!=
0
:
output
=
self
.
client
.
logs
(
container
)
raise
Exception
(
"Container exited with code {}:
\n
{}"
.
format
(
exitcode
,
output
))
return
container
def
create_and_start
(
self
,
image
=
'busybox'
,
command
=
'top'
,
**
kwargs
):
container
=
self
.
client
.
create_container
(
image
=
image
,
command
=
command
,
**
kwargs
)
self
.
tmp_containers
.
append
(
container
)
self
.
client
.
start
(
container
)
return
container
def
execute
(
self
,
container
,
cmd
,
exit_code
=
0
,
**
kwargs
):
exc
=
self
.
client
.
exec_create
(
container
,
cmd
,
**
kwargs
)
output
=
self
.
client
.
exec_start
(
exc
)
actual_exit_code
=
self
.
client
.
exec_inspect
(
exc
)[
'ExitCode'
]
msg
=
"Expected `{}` to exit with code {} but returned {}:
\n
{}"
.
format
(
" "
.
join
(
cmd
),
exit_code
,
actual_exit_code
,
output
)
assert
actual_exit_code
==
exit_code
,
msg
def
requires_api_version
(
version
):
return
pytest
.
mark
.
skipif
(
docker
.
utils
.
version_lt
(
docker
.
constants
.
DEFAULT_DOCKER_API_VERSION
,
version
),
reason
=
"API version is too low (< {0})"
.
format
(
version
)
)
tests/integration/api_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -6,11 +6,12 @@ import unittest
import
warnings
import
docker
from
docker.utils
import
kwargs_from_env
from
.
.
import
helpers
from
.
base
import
BaseIntegrationTest
,
BUSYBOX
class
InformationTest
(
helpers
.
BaseTestCase
):
class
InformationTest
(
BaseIntegrationTest
):
def
test_version
(
self
):
res
=
self
.
client
.
version
()
self
.
assertIn
(
'GoVersion'
,
res
)
...
...
@@ -24,19 +25,19 @@ class InformationTest(helpers.BaseTestCase):
self
.
assertIn
(
'Debug'
,
res
)
def
test_search
(
self
):
self
.
client
=
helpers
.
docker_client
(
timeout
=
10
)
res
=
self
.
client
.
search
(
'busybox'
)
client
=
docker
.
from_env
(
timeout
=
10
)
res
=
client
.
search
(
'busybox'
)
self
.
assertTrue
(
len
(
res
)
>=
1
)
base_img
=
[
x
for
x
in
res
if
x
[
'name'
]
==
'busybox'
]
self
.
assertEqual
(
len
(
base_img
),
1
)
self
.
assertIn
(
'description'
,
base_img
[
0
])
class
LinkTest
(
helpers
.
BaseTestCase
):
class
LinkTest
(
BaseIntegrationTest
):
def
test_remove_link
(
self
):
# Create containers
container1
=
self
.
client
.
create_container
(
helpers
.
BUSYBOX
,
'cat'
,
detach
=
True
,
stdin_open
=
True
BUSYBOX
,
'cat'
,
detach
=
True
,
stdin_open
=
True
)
container1_id
=
container1
[
'Id'
]
self
.
tmp_containers
.
append
(
container1_id
)
...
...
@@ -48,7 +49,7 @@ class LinkTest(helpers.BaseTestCase):
link_alias
=
'mylink'
container2
=
self
.
client
.
create_container
(
helpers
.
BUSYBOX
,
'cat'
,
host_config
=
self
.
client
.
create_host_config
(
BUSYBOX
,
'cat'
,
host_config
=
self
.
client
.
create_host_config
(
links
=
{
link_path
:
link_alias
}
)
)
...
...
@@ -74,7 +75,7 @@ class LinkTest(helpers.BaseTestCase):
self
.
assertEqual
(
len
(
retrieved
),
2
)
class
LoadConfigTest
(
helpers
.
BaseTestCase
):
class
LoadConfigTest
(
BaseIntegrationTest
):
def
test_load_legacy_config
(
self
):
folder
=
tempfile
.
mkdtemp
()
self
.
tmp_folders
.
append
(
folder
)
...
...
@@ -113,7 +114,7 @@ class LoadConfigTest(helpers.BaseTestCase):
class
AutoDetectVersionTest
(
unittest
.
TestCase
):
def
test_client_init
(
self
):
client
=
helpers
.
docker_client
(
version
=
'auto'
)
client
=
docker
.
from_env
(
version
=
'auto'
)
client_version
=
client
.
_version
api_version
=
client
.
version
(
api_version
=
False
)[
'ApiVersion'
]
self
.
assertEqual
(
client_version
,
api_version
)
...
...
@@ -122,7 +123,7 @@ class AutoDetectVersionTest(unittest.TestCase):
client
.
close
()
def
test_auto_client
(
self
):
client
=
docker
.
AutoVersionClient
(
**
helpers
.
docker_client_kwargs
())
client
=
docker
.
AutoVersionClient
(
**
kwargs_from_env
())
client_version
=
client
.
_version
api_version
=
client
.
version
(
api_version
=
False
)[
'ApiVersion'
]
self
.
assertEqual
(
client_version
,
api_version
)
...
...
@@ -130,9 +131,7 @@ class AutoDetectVersionTest(unittest.TestCase):
self
.
assertEqual
(
client_version
,
api_version_2
)
client
.
close
()
with
self
.
assertRaises
(
docker
.
errors
.
DockerException
):
docker
.
AutoVersionClient
(
**
helpers
.
docker_client_kwargs
(
version
=
'1.11'
)
)
docker
.
AutoVersionClient
(
version
=
'1.11'
,
**
kwargs_from_env
())
class
ConnectionTimeoutTest
(
unittest
.
TestCase
):
...
...
@@ -167,7 +166,7 @@ class UnixconnTest(unittest.TestCase):
with
warnings
.
catch_warnings
(
record
=
True
)
as
w
:
warnings
.
simplefilter
(
'always'
)
client
=
helpers
.
docker_client
()
client
=
docker
.
from_env
()
client
.
images
()
client
.
close
()
del
client
...
...
tests/integration/base.py
0 → 100644
Dosyayı görüntüle @
89a1ffa7
import
shutil
import
unittest
import
docker
import
six
BUSYBOX
=
'busybox:buildroot-2014.02'
class
BaseIntegrationTest
(
unittest
.
TestCase
):
"""
A base class for integration test cases.
It sets up a Docker client and cleans up the Docker server after itself.
"""
tmp_imgs
=
[]
tmp_containers
=
[]
tmp_folders
=
[]
tmp_volumes
=
[]
def
setUp
(
self
):
if
six
.
PY2
:
self
.
assertRegex
=
self
.
assertRegexpMatches
self
.
assertCountEqual
=
self
.
assertItemsEqual
self
.
client
=
docker
.
from_env
(
timeout
=
60
)
self
.
tmp_imgs
=
[]
self
.
tmp_containers
=
[]
self
.
tmp_folders
=
[]
self
.
tmp_volumes
=
[]
self
.
tmp_networks
=
[]
def
tearDown
(
self
):
for
img
in
self
.
tmp_imgs
:
try
:
self
.
client
.
remove_image
(
img
)
except
docker
.
errors
.
APIError
:
pass
for
container
in
self
.
tmp_containers
:
try
:
self
.
client
.
stop
(
container
,
timeout
=
1
)
self
.
client
.
remove_container
(
container
)
except
docker
.
errors
.
APIError
:
pass
for
network
in
self
.
tmp_networks
:
try
:
self
.
client
.
remove_network
(
network
)
except
docker
.
errors
.
APIError
:
pass
for
folder
in
self
.
tmp_folders
:
shutil
.
rmtree
(
folder
)
for
volume
in
self
.
tmp_volumes
:
try
:
self
.
client
.
remove_volume
(
volume
)
except
docker
.
errors
.
APIError
:
pass
self
.
client
.
close
()
def
run_container
(
self
,
*
args
,
**
kwargs
):
container
=
self
.
client
.
create_container
(
*
args
,
**
kwargs
)
self
.
tmp_containers
.
append
(
container
)
self
.
client
.
start
(
container
)
exitcode
=
self
.
client
.
wait
(
container
)
if
exitcode
!=
0
:
output
=
self
.
client
.
logs
(
container
)
raise
Exception
(
"Container exited with code {}:
\n
{}"
.
format
(
exitcode
,
output
))
return
container
def
create_and_start
(
self
,
image
=
'busybox'
,
command
=
'top'
,
**
kwargs
):
container
=
self
.
client
.
create_container
(
image
=
image
,
command
=
command
,
**
kwargs
)
self
.
tmp_containers
.
append
(
container
)
self
.
client
.
start
(
container
)
return
container
def
execute
(
self
,
container
,
cmd
,
exit_code
=
0
,
**
kwargs
):
exc
=
self
.
client
.
exec_create
(
container
,
cmd
,
**
kwargs
)
output
=
self
.
client
.
exec_start
(
exc
)
actual_exit_code
=
self
.
client
.
exec_inspect
(
exc
)[
'ExitCode'
]
msg
=
"Expected `{}` to exit with code {} but returned {}:
\n
{}"
.
format
(
" "
.
join
(
cmd
),
exit_code
,
actual_exit_code
,
output
)
assert
actual_exit_code
==
exit_code
,
msg
tests/integration/build_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -8,11 +8,11 @@ import six
from
docker
import
errors
from
..
import
helpers
from
.
.base
import
requires_api_version
from
..
helpers
import
requires_api_version
from
.
base
import
BaseIntegrationTest
class
BuildTest
(
helpers
.
BaseTestCase
):
class
BuildTest
(
BaseIntegrationTest
):
def
test_build_streaming
(
self
):
script
=
io
.
BytesIO
(
'
\n
'
.
join
([
'FROM busybox'
,
...
...
tests/integration/conftest.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -7,14 +7,13 @@ import warnings
import
docker.errors
import
pytest
from
..helpers
import
BUSYBOX
from
..helpers
import
docker_client
from
.base
import
BUSYBOX
@pytest.fixture
(
autouse
=
True
,
scope
=
'session'
)
def
setup_test_session
():
warnings
.
simplefilter
(
'error'
)
c
=
docker
_client
()
c
=
docker
.
from_env
()
try
:
c
.
inspect_image
(
BUSYBOX
)
except
docker
.
errors
.
NotFound
:
...
...
tests/integration/container_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -8,13 +8,12 @@ from docker.utils.socket import read_exactly
import
pytest
import
six
from
..
base
import
requires_api_version
from
..
helpers
import
requires_api_version
from
..
import
helpers
from
.base
import
BaseIntegrationTest
,
BUSYBOX
BUSYBOX
=
helpers
.
BUSYBOX
class
ListContainersTest
(
helpers
.
BaseTestCase
):
class
ListContainersTest
(
BaseIntegrationTest
):
def
test_list_containers
(
self
):
res0
=
self
.
client
.
containers
(
all
=
True
)
size
=
len
(
res0
)
...
...
@@ -34,7 +33,7 @@ class ListContainersTest(helpers.BaseTestCase):
self
.
assertIn
(
'Status'
,
retrieved
)
class
CreateContainerTest
(
helpers
.
BaseTestCase
):
class
CreateContainerTest
(
BaseIntegrationTest
):
def
test_create
(
self
):
res
=
self
.
client
.
create_container
(
BUSYBOX
,
'true'
)
...
...
@@ -398,7 +397,7 @@ class CreateContainerTest(helpers.BaseTestCase):
assert
config
[
'HostConfig'
][
'Tmpfs'
]
==
tmpfs
class
VolumeBindTest
(
helpers
.
BaseTestCase
):
class
VolumeBindTest
(
BaseIntegrationTest
):
def
setUp
(
self
):
super
(
VolumeBindTest
,
self
)
.
setUp
()
...
...
@@ -487,7 +486,7 @@ class VolumeBindTest(helpers.BaseTestCase):
@requires_api_version
(
'1.20'
)
class
ArchiveTest
(
helpers
.
BaseTestCase
):
class
ArchiveTest
(
BaseIntegrationTest
):
def
test_get_file_archive_from_container
(
self
):
data
=
'The Maid and the Pocket Watch of Blood'
ctnr
=
self
.
client
.
create_container
(
...
...
@@ -567,7 +566,7 @@ class ArchiveTest(helpers.BaseTestCase):
self
.
assertIn
(
'bar/'
,
results
)
class
RenameContainerTest
(
helpers
.
BaseTestCase
):
class
RenameContainerTest
(
BaseIntegrationTest
):
def
test_rename_container
(
self
):
version
=
self
.
client
.
version
()[
'Version'
]
name
=
'hong_meiling'
...
...
@@ -583,7 +582,7 @@ class RenameContainerTest(helpers.BaseTestCase):
self
.
assertEqual
(
'/{0}'
.
format
(
name
),
inspect
[
'Name'
])
class
StartContainerTest
(
helpers
.
BaseTestCase
):
class
StartContainerTest
(
BaseIntegrationTest
):
def
test_start_container
(
self
):
res
=
self
.
client
.
create_container
(
BUSYBOX
,
'true'
)
self
.
assertIn
(
'Id'
,
res
)
...
...
@@ -637,7 +636,7 @@ class StartContainerTest(helpers.BaseTestCase):
self
.
assertEqual
(
exitcode
,
0
,
msg
=
cmd
)
class
WaitTest
(
helpers
.
BaseTestCase
):
class
WaitTest
(
BaseIntegrationTest
):
def
test_wait
(
self
):
res
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'sleep'
,
'3'
])
id
=
res
[
'Id'
]
...
...
@@ -665,7 +664,7 @@ class WaitTest(helpers.BaseTestCase):
self
.
assertEqual
(
inspect
[
'State'
][
'ExitCode'
],
exitcode
)
class
LogsTest
(
helpers
.
BaseTestCase
):
class
LogsTest
(
BaseIntegrationTest
):
def
test_logs
(
self
):
snippet
=
'Flowering Nights (Sakuya Iyazoi)'
container
=
self
.
client
.
create_container
(
...
...
@@ -737,7 +736,7 @@ Line2'''
self
.
assertEqual
(
logs
,
''
.
encode
(
encoding
=
'ascii'
))
class
DiffTest
(
helpers
.
BaseTestCase
):
class
DiffTest
(
BaseIntegrationTest
):
def
test_diff
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'touch'
,
'/test'
])
id
=
container
[
'Id'
]
...
...
@@ -765,7 +764,7 @@ class DiffTest(helpers.BaseTestCase):
self
.
assertEqual
(
test_diff
[
0
][
'Kind'
],
1
)
class
StopTest
(
helpers
.
BaseTestCase
):
class
StopTest
(
BaseIntegrationTest
):
def
test_stop
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'sleep'
,
'9999'
])
id
=
container
[
'Id'
]
...
...
@@ -792,7 +791,7 @@ class StopTest(helpers.BaseTestCase):
self
.
assertEqual
(
state
[
'Running'
],
False
)
class
KillTest
(
helpers
.
BaseTestCase
):
class
KillTest
(
BaseIntegrationTest
):
def
test_kill
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'sleep'
,
'9999'
])
id
=
container
[
'Id'
]
...
...
@@ -868,7 +867,7 @@ class KillTest(helpers.BaseTestCase):
self
.
assertEqual
(
state
[
'Running'
],
False
,
state
)
class
PortTest
(
helpers
.
BaseTestCase
):
class
PortTest
(
BaseIntegrationTest
):
def
test_port
(
self
):
port_bindings
=
{
...
...
@@ -899,7 +898,7 @@ class PortTest(helpers.BaseTestCase):
self
.
client
.
kill
(
id
)
class
ContainerTopTest
(
helpers
.
BaseTestCase
):
class
ContainerTopTest
(
BaseIntegrationTest
):
def
test_top
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'sleep'
,
'60'
])
...
...
@@ -934,7 +933,7 @@ class ContainerTopTest(helpers.BaseTestCase):
self
.
client
.
kill
(
id
)
class
RestartContainerTest
(
helpers
.
BaseTestCase
):
class
RestartContainerTest
(
BaseIntegrationTest
):
def
test_restart
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'sleep'
,
'9999'
])
id
=
container
[
'Id'
]
...
...
@@ -975,7 +974,7 @@ class RestartContainerTest(helpers.BaseTestCase):
self
.
client
.
kill
(
id
)
class
RemoveContainerTest
(
helpers
.
BaseTestCase
):
class
RemoveContainerTest
(
BaseIntegrationTest
):
def
test_remove
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'true'
])
id
=
container
[
'Id'
]
...
...
@@ -997,7 +996,7 @@ class RemoveContainerTest(helpers.BaseTestCase):
self
.
assertEqual
(
len
(
res
),
0
)
class
AttachContainerTest
(
helpers
.
BaseTestCase
):
class
AttachContainerTest
(
BaseIntegrationTest
):
def
test_run_container_streaming
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
'/bin/sh'
,
detach
=
True
,
stdin_open
=
True
)
...
...
@@ -1028,7 +1027,7 @@ class AttachContainerTest(helpers.BaseTestCase):
self
.
assertEqual
(
data
.
decode
(
'utf-8'
),
line
)
class
PauseTest
(
helpers
.
BaseTestCase
):
class
PauseTest
(
BaseIntegrationTest
):
def
test_pause_unpause
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'sleep'
,
'9999'
])
id
=
container
[
'Id'
]
...
...
@@ -1057,7 +1056,7 @@ class PauseTest(helpers.BaseTestCase):
self
.
assertEqual
(
state
[
'Paused'
],
False
)
class
GetContainerStatsTest
(
helpers
.
BaseTestCase
):
class
GetContainerStatsTest
(
BaseIntegrationTest
):
@requires_api_version
(
'1.19'
)
def
test_get_container_stats_no_stream
(
self
):
container
=
self
.
client
.
create_container
(
...
...
@@ -1088,7 +1087,7 @@ class GetContainerStatsTest(helpers.BaseTestCase):
self
.
assertIn
(
key
,
chunk
)
class
ContainerUpdateTest
(
helpers
.
BaseTestCase
):
class
ContainerUpdateTest
(
BaseIntegrationTest
):
@requires_api_version
(
'1.22'
)
def
test_update_container
(
self
):
old_mem_limit
=
400
*
1024
*
1024
...
...
@@ -1135,7 +1134,7 @@ class ContainerUpdateTest(helpers.BaseTestCase):
)
class
ContainerCPUTest
(
helpers
.
BaseTestCase
):
class
ContainerCPUTest
(
BaseIntegrationTest
):
@requires_api_version
(
'1.18'
)
def
test_container_cpu_shares
(
self
):
cpu_shares
=
512
...
...
tests/integration/errors_test.py
Dosyayı görüntüle @
89a1ffa7
from
docker.errors
import
APIError
from
.
.
import
helpers
from
.
base
import
BaseIntegrationTest
,
BUSYBOX
class
ErrorsTest
(
helpers
.
BaseTestCase
):
class
ErrorsTest
(
BaseIntegrationTest
):
def
test_api_error_parses_json
(
self
):
container
=
self
.
client
.
create_container
(
helpers
.
BUSYBOX
,
[
'sleep'
,
'10'
]
)
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'sleep'
,
'10'
])
self
.
client
.
start
(
container
[
'Id'
])
with
self
.
assertRaises
(
APIError
)
as
cm
:
self
.
client
.
remove_container
(
container
[
'Id'
])
...
...
tests/integration/exec_test.py
Dosyayı görüntüle @
89a1ffa7
from
docker.utils.socket
import
next_frame_size
from
docker.utils.socket
import
read_exactly
from
.
.
import
helpers
from
.
base
import
BaseIntegrationTest
,
BUSYBOX
BUSYBOX
=
helpers
.
BUSYBOX
class
ExecTest
(
helpers
.
BaseTestCase
):
class
ExecTest
(
BaseIntegrationTest
):
def
test_execute_command
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
'cat'
,
detach
=
True
,
stdin_open
=
True
)
...
...
tests/integration/image_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -14,12 +14,10 @@ from six.moves import socketserver
import
docker
from
.
.
import
helpers
from
.
base
import
BaseIntegrationTest
,
BUSYBOX
BUSYBOX
=
helpers
.
BUSYBOX
class
ListImagesTest
(
helpers
.
BaseTestCase
):
class
ListImagesTest
(
BaseIntegrationTest
):
def
test_images
(
self
):
res1
=
self
.
client
.
images
(
all
=
True
)
self
.
assertIn
(
'Id'
,
res1
[
0
])
...
...
@@ -37,7 +35,7 @@ class ListImagesTest(helpers.BaseTestCase):
self
.
assertEqual
(
type
(
res1
[
0
]),
six
.
text_type
)
class
PullImageTest
(
helpers
.
BaseTestCase
):
class
PullImageTest
(
BaseIntegrationTest
):
def
test_pull
(
self
):
try
:
self
.
client
.
remove_image
(
'hello-world'
)
...
...
@@ -70,7 +68,7 @@ class PullImageTest(helpers.BaseTestCase):
self
.
assertIn
(
'Id'
,
img_info
)
class
CommitTest
(
helpers
.
BaseTestCase
):
class
CommitTest
(
BaseIntegrationTest
):
def
test_commit
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'touch'
,
'/test'
])
id
=
container
[
'Id'
]
...
...
@@ -105,7 +103,7 @@ class CommitTest(helpers.BaseTestCase):
assert
img
[
'Config'
][
'Cmd'
]
==
[
'bash'
]
class
RemoveImageTest
(
helpers
.
BaseTestCase
):
class
RemoveImageTest
(
BaseIntegrationTest
):
def
test_remove
(
self
):
container
=
self
.
client
.
create_container
(
BUSYBOX
,
[
'touch'
,
'/test'
])
id
=
container
[
'Id'
]
...
...
@@ -121,7 +119,7 @@ class RemoveImageTest(helpers.BaseTestCase):
self
.
assertEqual
(
len
(
res
),
0
)
class
ImportImageTest
(
helpers
.
BaseTestCase
):
class
ImportImageTest
(
BaseIntegrationTest
):
'''Base class for `docker import` test cases.'''
TAR_SIZE
=
512
*
1024
...
...
tests/integration/network_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -5,11 +5,11 @@ from docker.utils import create_ipam_config
from
docker.utils
import
create_ipam_pool
import
pytest
from
..
import
helpers
from
.
.base
import
requires_api_version
from
..
helpers
import
requires_api_version
from
.
base
import
BaseIntegrationTest
class
TestNetworks
(
helpers
.
BaseTestCase
):
class
TestNetworks
(
BaseIntegrationTest
):
def
create_network
(
self
,
*
args
,
**
kwargs
):
net_name
=
u'dockerpy{}'
.
format
(
random
.
getrandbits
(
24
))[:
14
]
net_id
=
self
.
client
.
create_network
(
net_name
,
*
args
,
**
kwargs
)[
'Id'
]
...
...
tests/integration/regression_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -4,12 +4,10 @@ import random
import
docker
import
six
from
.
.
import
helpers
from
.
base
import
BaseIntegrationTest
,
BUSYBOX
BUSYBOX
=
helpers
.
BUSYBOX
class
TestRegressions
(
helpers
.
BaseTestCase
):
class
TestRegressions
(
BaseIntegrationTest
):
def
test_443_handle_nonchunked_response_in_stream
(
self
):
dfile
=
io
.
BytesIO
()
with
self
.
assertRaises
(
docker
.
errors
.
APIError
)
as
exc
:
...
...
tests/integration/service_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -2,14 +2,11 @@ import random
import
docker
from
..
base
import
requires_api_version
from
.
.
import
helpers
from
..
helpers
import
requires_api_version
from
.
base
import
BaseIntegrationTest
BUSYBOX
=
helpers
.
BUSYBOX
class
ServiceTest
(
helpers
.
BaseTestCase
):
class
ServiceTest
(
BaseIntegrationTest
):
def
setUp
(
self
):
super
(
ServiceTest
,
self
)
.
setUp
()
self
.
client
.
leave_swarm
(
force
=
True
)
...
...
tests/integration/swarm_test.py
Dosyayı görüntüle @
89a1ffa7
import
docker
import
pytest
from
..
base
import
requires_api_version
from
.
.
import
helpers
from
..
helpers
import
requires_api_version
from
.
base
import
BaseIntegrationTest
BUSYBOX
=
helpers
.
BUSYBOX
class
SwarmTest
(
helpers
.
BaseTestCase
):
class
SwarmTest
(
BaseIntegrationTest
):
def
setUp
(
self
):
super
(
SwarmTest
,
self
)
.
setUp
()
self
.
client
.
leave_swarm
(
force
=
True
)
...
...
tests/integration/volume_test.py
Dosyayı görüntüle @
89a1ffa7
import
docker
import
pytest
from
..
import
helpers
from
.
.base
import
requires_api_version
from
..
helpers
import
requires_api_version
from
.
base
import
BaseIntegrationTest
@requires_api_version
(
'1.21'
)
class
TestVolumes
(
helpers
.
BaseTestCase
):
class
TestVolumes
(
BaseIntegrationTest
):
def
test_create_volume
(
self
):
name
=
'perfectcherryblossom'
self
.
tmp_volumes
.
append
(
name
)
...
...
tests/unit/container_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -9,7 +9,7 @@ import pytest
import
six
from
.
import
fake_api
from
..
base
import
requires_api_version
from
..
helpers
import
requires_api_version
from
.api_test
import
(
DockerClientTest
,
url_prefix
,
fake_request
,
DEFAULT_TIMEOUT_SECONDS
,
fake_inspect_container
...
...
tests/unit/network_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -2,7 +2,7 @@ import json
import
six
from
..
import
base
from
..
helpers
import
requires_api_version
from
.api_test
import
DockerClientTest
,
url_prefix
,
response
from
docker.utils
import
create_ipam_config
,
create_ipam_pool
...
...
@@ -13,7 +13,7 @@ except ImportError:
class
NetworkTest
(
DockerClientTest
):
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_list_networks
(
self
):
networks
=
[
{
...
...
@@ -49,7 +49,7 @@ class NetworkTest(DockerClientTest):
filters
=
json
.
loads
(
get
.
call_args
[
1
][
'params'
][
'filters'
])
self
.
assertEqual
(
filters
,
{
'id'
:
[
'123'
]})
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_create_network
(
self
):
network_data
=
{
"id"
:
'abc12345'
,
...
...
@@ -104,7 +104,7 @@ class NetworkTest(DockerClientTest):
}
})
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_remove_network
(
self
):
network_id
=
'abc12345'
delete
=
mock
.
Mock
(
return_value
=
response
(
status_code
=
200
))
...
...
@@ -116,7 +116,7 @@ class NetworkTest(DockerClientTest):
self
.
assertEqual
(
args
[
0
][
0
],
url_prefix
+
'networks/{0}'
.
format
(
network_id
))
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_inspect_network
(
self
):
network_id
=
'abc12345'
network_name
=
'foo'
...
...
@@ -138,7 +138,7 @@ class NetworkTest(DockerClientTest):
self
.
assertEqual
(
args
[
0
][
0
],
url_prefix
+
'networks/{0}'
.
format
(
network_id
))
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_connect_container_to_network
(
self
):
network_id
=
'abc12345'
container_id
=
'def45678'
...
...
@@ -167,7 +167,7 @@ class NetworkTest(DockerClientTest):
},
})
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_disconnect_container_from_network
(
self
):
network_id
=
'abc12345'
container_id
=
'def45678'
...
...
tests/unit/volume_test.py
Dosyayı görüntüle @
89a1ffa7
...
...
@@ -2,12 +2,12 @@ import json
import
pytest
from
..
import
base
from
..
helpers
import
requires_api_version
from
.api_test
import
DockerClientTest
,
url_prefix
,
fake_request
class
VolumeTest
(
DockerClientTest
):
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_list_volumes
(
self
):
volumes
=
self
.
client
.
volumes
()
self
.
assertIn
(
'Volumes'
,
volumes
)
...
...
@@ -17,7 +17,7 @@ class VolumeTest(DockerClientTest):
self
.
assertEqual
(
args
[
0
][
0
],
'GET'
)
self
.
assertEqual
(
args
[
0
][
1
],
url_prefix
+
'volumes'
)
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_list_volumes_and_filters
(
self
):
volumes
=
self
.
client
.
volumes
(
filters
=
{
'dangling'
:
True
})
assert
'Volumes'
in
volumes
...
...
@@ -29,7 +29,7 @@ class VolumeTest(DockerClientTest):
assert
args
[
1
]
==
{
'params'
:
{
'filters'
:
'{"dangling": ["true"]}'
},
'timeout'
:
60
}
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_create_volume
(
self
):
name
=
'perfectcherryblossom'
result
=
self
.
client
.
create_volume
(
name
)
...
...
@@ -43,7 +43,7 @@ class VolumeTest(DockerClientTest):
self
.
assertEqual
(
args
[
0
][
1
],
url_prefix
+
'volumes/create'
)
self
.
assertEqual
(
json
.
loads
(
args
[
1
][
'data'
]),
{
'Name'
:
name
})
@
base.
requires_api_version
(
'1.23'
)
@requires_api_version
(
'1.23'
)
def
test_create_volume_with_labels
(
self
):
name
=
'perfectcherryblossom'
result
=
self
.
client
.
create_volume
(
name
,
labels
=
{
...
...
@@ -53,13 +53,13 @@ class VolumeTest(DockerClientTest):
{
'com.example.some-label'
:
'some-value'
}
)
@
base.
requires_api_version
(
'1.23'
)
@requires_api_version
(
'1.23'
)
def
test_create_volume_with_invalid_labels
(
self
):
name
=
'perfectcherryblossom'
with
pytest
.
raises
(
TypeError
):
self
.
client
.
create_volume
(
name
,
labels
=
1
)
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_create_volume_with_driver
(
self
):
name
=
'perfectcherryblossom'
driver_name
=
'sshfs'
...
...
@@ -72,7 +72,7 @@ class VolumeTest(DockerClientTest):
self
.
assertIn
(
'Driver'
,
data
)
self
.
assertEqual
(
data
[
'Driver'
],
driver_name
)
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_create_volume_invalid_opts_type
(
self
):
with
pytest
.
raises
(
TypeError
):
self
.
client
.
create_volume
(
...
...
@@ -89,7 +89,7 @@ class VolumeTest(DockerClientTest):
'perfectcherryblossom'
,
driver_opts
=
''
)
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_inspect_volume
(
self
):
name
=
'perfectcherryblossom'
result
=
self
.
client
.
inspect_volume
(
name
)
...
...
@@ -102,7 +102,7 @@ class VolumeTest(DockerClientTest):
self
.
assertEqual
(
args
[
0
][
0
],
'GET'
)
self
.
assertEqual
(
args
[
0
][
1
],
'{0}volumes/{1}'
.
format
(
url_prefix
,
name
))
@
base.
requires_api_version
(
'1.21'
)
@requires_api_version
(
'1.21'
)
def
test_remove_volume
(
self
):
name
=
'perfectcherryblossom'
self
.
client
.
remove_volume
(
name
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment