|
3 | 3 | import tempfile
|
4 | 4 |
|
5 | 5 | import docker
|
| 6 | +from docker.constants import IS_WINDOWS_PLATFORM |
6 | 7 | from docker.utils.socket import next_frame_size
|
7 | 8 | from docker.utils.socket import read_exactly
|
8 | 9 | import pytest
|
@@ -524,13 +525,13 @@ def test_get_file_stat_from_container(self):
|
524 | 525 |
|
525 | 526 | def test_copy_file_to_container(self):
|
526 | 527 | data = b'Deaf To All But The Song'
|
527 |
| - with tempfile.NamedTemporaryFile() as test_file: |
| 528 | + with tempfile.NamedTemporaryFile(delete=False) as test_file: |
528 | 529 | test_file.write(data)
|
529 | 530 | test_file.seek(0)
|
530 | 531 | ctnr = self.client.create_container(
|
531 | 532 | BUSYBOX,
|
532 | 533 | 'cat {0}'.format(
|
533 |
| - os.path.join('/vol1', os.path.basename(test_file.name)) |
| 534 | + os.path.join('/vol1/', os.path.basename(test_file.name)) |
534 | 535 | ),
|
535 | 536 | volumes=['/vol1']
|
536 | 537 | )
|
@@ -822,11 +823,12 @@ def test_kill_with_dict_instead_of_id(self):
|
822 | 823 | self.assertEqual(state['Running'], False)
|
823 | 824 |
|
824 | 825 | def test_kill_with_signal(self):
|
825 |
| - container = self.client.create_container(BUSYBOX, ['sleep', '60']) |
826 |
| - id = container['Id'] |
827 |
| - self.client.start(id) |
| 826 | + id = self.client.create_container(BUSYBOX, ['sleep', '60']) |
828 | 827 | self.tmp_containers.append(id)
|
829 |
| - self.client.kill(id, signal=signal.SIGKILL) |
| 828 | + self.client.start(id) |
| 829 | + self.client.kill( |
| 830 | + id, signal=signal.SIGKILL if not IS_WINDOWS_PLATFORM else 9 |
| 831 | + ) |
830 | 832 | exitcode = self.client.wait(id)
|
831 | 833 | self.assertNotEqual(exitcode, 0)
|
832 | 834 | container_info = self.client.inspect_container(id)
|
@@ -902,36 +904,41 @@ def test_port(self):
|
902 | 904 | class ContainerTopTest(helpers.BaseTestCase):
|
903 | 905 | def test_top(self):
|
904 | 906 | container = self.client.create_container(
|
905 |
| - BUSYBOX, ['sleep', '60']) |
| 907 | + BUSYBOX, ['sleep', '60'] |
| 908 | + ) |
906 | 909 |
|
907 |
| - id = container['Id'] |
| 910 | + self.tmp_containers.append(container) |
908 | 911 |
|
909 | 912 | self.client.start(container)
|
910 |
| - res = self.client.top(container['Id']) |
911 |
| - self.assertEqual( |
912 |
| - res['Titles'], |
913 |
| - ['UID', 'PID', 'PPID', 'C', 'STIME', 'TTY', 'TIME', 'CMD'] |
914 |
| - ) |
915 |
| - self.assertEqual(len(res['Processes']), 1) |
916 |
| - self.assertEqual(res['Processes'][0][7], 'sleep 60') |
917 |
| - self.client.kill(id) |
| 913 | + res = self.client.top(container) |
| 914 | + if IS_WINDOWS_PLATFORM: |
| 915 | + assert res['Titles'] == ['PID', 'USER', 'TIME', 'COMMAND'] |
| 916 | + else: |
| 917 | + assert res['Titles'] == [ |
| 918 | + 'UID', 'PID', 'PPID', 'C', 'STIME', 'TTY', 'TIME', 'CMD' |
| 919 | + ] |
| 920 | + assert len(res['Processes']) == 1 |
| 921 | + assert res['Processes'][0][-1] == 'sleep 60' |
| 922 | + self.client.kill(container) |
918 | 923 |
|
| 924 | + @pytest.mark.skipif( |
| 925 | + IS_WINDOWS_PLATFORM, reason='No psargs support on windows' |
| 926 | + ) |
919 | 927 | def test_top_with_psargs(self):
|
920 | 928 | container = self.client.create_container(
|
921 | 929 | BUSYBOX, ['sleep', '60'])
|
922 | 930 |
|
923 |
| - id = container['Id'] |
| 931 | + self.tmp_containers.append(container) |
924 | 932 |
|
925 | 933 | self.client.start(container)
|
926 |
| - res = self.client.top(container['Id'], 'waux') |
| 934 | + res = self.client.top(container, 'waux') |
927 | 935 | self.assertEqual(
|
928 | 936 | res['Titles'],
|
929 | 937 | ['USER', 'PID', '%CPU', '%MEM', 'VSZ', 'RSS',
|
930 | 938 | 'TTY', 'STAT', 'START', 'TIME', 'COMMAND'],
|
931 | 939 | )
|
932 | 940 | self.assertEqual(len(res['Processes']), 1)
|
933 | 941 | self.assertEqual(res['Processes'][0][10], 'sleep 60')
|
934 |
| - self.client.kill(id) |
935 | 942 |
|
936 | 943 |
|
937 | 944 | class RestartContainerTest(helpers.BaseTestCase):
|
|
0 commit comments