Mercurial > hg > orthanc-tests
annotate Plugins/WebDav/Run.py @ 723:5085b83b8eec find-refactoring
count-resources
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 15 Oct 2024 15:53:00 +0200 |
parents | 5d7b6e43ab7d |
children |
rev | line source |
---|---|
610
ec657d1a62a6
fix compatibility with python3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
511
diff
changeset
|
1 #!/usr/bin/python3 |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
3 # Orthanc - A Lightweight, RESTful DICOM Store |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 # Department, University Hospital of Liege, Belgium |
649
5d7b6e43ab7d
updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
6 # Copyright (C) 2017-2023 Osimis S.A., Belgium |
5d7b6e43ab7d
updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
7 # Copyright (C) 2024-2024 Orthanc Team SRL, Belgium |
640
9f8276ac1cdd
update year to 2024
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
614
diff
changeset
|
8 # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 # |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 # This program is free software: you can redistribute it and/or |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 # modify it under the terms of the GNU General Public License as |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 # published by the Free Software Foundation, either version 3 of the |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 # License, or (at your option) any later version. |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 # |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 # This program is distributed in the hope that it will be useful, but |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 # WITHOUT ANY WARRANTY; without even the implied warranty of |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 # General Public License for more details. |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 # |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 # You should have received a copy of the GNU General Public License |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 |
614 | 24 # Note about easywebdav: This test is compatible with version 1.2.0 of |
25 # the "python3-easywebdav" package in Ubuntu/Debian. Beware that this | |
26 # package includes a patch that is not available in the upstream | |
27 # version of easywebdav: | |
28 # https://salsa.debian.org/python-team/packages/python-easywebdav/-/blob/master/debian/patches/python3.patch | |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 import argparse |
614 | 31 import easywebdav |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
32 import io |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 import os |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 import pprint |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
35 import re |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
36 import sys |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
37 import unittest |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
38 |
339 | 39 # https://stackoverflow.com/a/49336105/881731 |
40 if ((3, 0) <= sys.version_info <= (3, 9)): | |
41 from urllib.parse import unquote | |
42 elif ((2, 0) <= sys.version_info <= (2, 9)): | |
43 from urlparse import unquote | |
44 | |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'Tests')) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 from Toolbox import * |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 ## |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 ## Parse the command-line arguments |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 ## |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 |
375 | 53 parser = argparse.ArgumentParser(description = 'Run the integration tests for the WebDAV server.') |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 parser.add_argument('--server', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 default = 'localhost', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 help = 'Address of the Orthanc server to test') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 parser.add_argument('--rest', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
59 type = int, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
60 default = 8042, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 help = 'Port to the REST API') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 parser.add_argument('--username', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 default = 'alice', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 help = 'Username to the REST API') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 parser.add_argument('--password', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 default = 'orthanctest', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 help = 'Password to the REST API') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 parser.add_argument('--force', help = 'Do not warn the user', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 action = 'store_true') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 parser.add_argument('options', metavar = 'N', nargs = '*', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 help='Arguments to Python unittest') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 args = parser.parse_args() |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 ## |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 ## Configure the testing context |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 ## |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 if not args.force: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 print(""" |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 WARNING: This test will remove all the content of your |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 Orthanc instance running on %s! |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 Are you sure ["yes" to go on]?""" % args.server) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
86 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 if sys.stdin.readline().strip() != 'yes': |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
88 print('Aborting...') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 exit(0) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
92 ORTHANC = DefineOrthanc(server = args.server, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 username = args.username, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 password = args.password, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 restPort = args.rest) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 WEBDAV = easywebdav.connect(args.server, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
98 port = args.rest, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
99 username = args.username, |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
100 password = args.password) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
101 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
102 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
103 ## |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
104 ## The tests |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
105 ## |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
106 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 def ListFiles(path, recursive): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
109 result = [ ] |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
110 for i in WEBDAV.ls(path): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
111 if i.name == path: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
112 pass |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
113 elif i.contenttype == '': |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
114 if recursive: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
115 result += ListFiles(i.name + '/', True) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
116 else: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 result.append(i.name) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
118 return result |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
119 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
120 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
121 def GetFileInfo(path): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
122 for i in WEBDAV.ls(path[0 : path.rfind('/')]): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
123 if i.name == path: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
124 return i |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
125 raise Exception('Cannot find: %s' % path) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
126 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
127 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 def DownloadFile(path): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
129 with tempfile.NamedTemporaryFile(delete = False) as f: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
130 f.close() |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
131 WEBDAV.download(path, f.name) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
132 with open(f.name, 'rb') as g: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 result = g.read() |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 os.unlink(f.name) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 return result |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
138 class Orthanc(unittest.TestCase): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
139 def setUp(self): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
140 if (sys.version_info >= (3, 0)): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 # Remove annoying warnings about unclosed socket in Python 3 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 import warnings |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 warnings.simplefilter("ignore", ResourceWarning) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
144 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
145 DropOrthanc(ORTHANC) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
147 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
148 def test_root(self): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
149 self.assertEqual(6, len(WEBDAV.ls('/webdav/'))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 for i in WEBDAV.ls('/webdav/'): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
151 self.assertTrue(i.name in [ |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
152 '/webdav/', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
153 '/webdav/by-dates', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
154 '/webdav/by-patients', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
155 '/webdav/by-studies', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
156 '/webdav/by-uids', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 '/webdav/uploads' |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
158 ]) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
159 self.assertEqual(0, i.size) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
160 self.assertEqual('', i.contenttype) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
161 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 patients = WEBDAV.ls('/webdav/by-patients/') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
163 self.assertEqual(1, len(patients)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
164 self.assertEqual(patients[0].name, '/webdav/by-patients/') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
165 self.assertEqual(0, patients[0].size) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
166 self.assertEqual('', patients[0].contenttype) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
167 |
342
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
168 self.assertRaises(Exception, lambda: WEBDAV.delete('/webdav/nope')) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
169 self.assertRaises(Exception, lambda: WEBDAV.delete('/webdav/by-uids')) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
170 |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
172 def test_upload(self): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
173 self.assertEqual(0, len(ListFiles('/webdav/uploads/', True))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
174 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
175 uploads = WEBDAV.ls('/webdav/uploads/') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
176 for i in uploads: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
177 self.assertEqual(i.contenttype, '') # Only folders are allowed |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
178 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
179 self.assertEqual(0, len(DoGet(ORTHANC, '/studies'))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
180 WEBDAV.upload(GetDatabasePath('DummyCT.dcm'), '/webdav/uploads/DummyCT.dcm') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
181 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
182 while len(ListFiles('/webdav/uploads/', True)) > 1: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
183 time.sleep(0.1) |
343 | 184 time.sleep(0.1) # Give some more delay to be sure that the store has succeeded (necessary for Wine) |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
185 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
186 instances = DoGet(ORTHANC, '/instances?expand') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
187 self.assertEqual(1, len(instances)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
188 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
189 instances[0]['MainDicomTags']['SOPInstanceUID']) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
190 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
191 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
192 def test_upload_folders(self): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
193 self.assertEqual(0, len(ListFiles('/webdav/uploads/', True))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
194 self.assertEqual(0, len(DoGet(ORTHANC, '/studies'))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
195 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
196 try: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
197 WEBDAV.mkdir('/webdav/uploads/a') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
198 except: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
199 pass |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
200 try: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
201 WEBDAV.mkdir('/webdav/uploads/b') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
202 except: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
203 pass |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
204 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
205 WEBDAV.upload(GetDatabasePath('DummyCT.dcm'), '/webdav/uploads/a/DummyCT.dcm') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
206 WEBDAV.upload(GetDatabasePath('ColorTestMalaterre.dcm'), '/webdav/uploads/b/ColorTestMalaterre.dcm') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
207 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
208 while len(ListFiles('/webdav/uploads/', True)) > 1: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
209 time.sleep(0.1) |
343 | 210 time.sleep(0.1) # Give some more delay to be sure that the store has succeeded (necessary for Wine) |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
211 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
212 self.assertEqual(2, len(DoGet(ORTHANC, '/instances'))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
213 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
214 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
215 def test_by_uids(self): |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
216 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-uids/'))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
217 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
218 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
219 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
220 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] |
339 | 221 tags = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) |
222 studyUid = tags['StudyInstanceUID'] | |
223 seriesUid = tags['SeriesInstanceUID'] | |
224 sopUid = tags['SOPInstanceUID'] | |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
225 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
226 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', False))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
227 self.assertEqual(1, len(ListFiles('/webdav/by-uids/%s/' % studyUid, False))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
228 self.assertEqual(2, len(ListFiles('/webdav/by-uids/%s/%s/' % (studyUid, seriesUid), False))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
229 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
230 content = ListFiles('/webdav/by-uids/', True) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
231 self.assertEqual(3, len(content)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
232 self.assertTrue(('/webdav/by-uids/%s/study.json' % studyUid) in content) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
233 self.assertTrue(('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) in content) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
234 self.assertTrue(('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) in content) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
235 |
342
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
236 # Deleting the virtual files "study|series.json" has no |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
237 # effect, but is needed for recursive DELETE in some file explorers |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
238 WEBDAV.delete('/webdav/by-uids/%s/study.json' % studyUid) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
239 WEBDAV.delete('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
240 |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
241 info = GetFileInfo('/webdav/by-uids/%s/study.json' % studyUid) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
242 self.assertEqual(info.contenttype, 'application/json') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
243 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
244 info = GetFileInfo('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
245 self.assertEqual(info.contenttype, 'application/json') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
246 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
247 info = GetFileInfo('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
248 self.assertEqual(info.contenttype, 'application/dicom') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
249 self.assertEqual(info.size, os.stat(GetDatabasePath('DummyCT.dcm')).st_size) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
250 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
251 a = DownloadFile('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
252 self.assertEqual(len(a), info.size) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
253 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
254 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as f: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
255 self.assertEqual(a, f.read()) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
256 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
257 self.assertEqual(studyUid, json.loads(DownloadFile('/webdav/by-uids/%s/study.json' % studyUid)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
258 ['MainDicomTags']['StudyInstanceUID']) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
259 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
260 self.assertEqual(seriesUid, json.loads(DownloadFile('/webdav/by-uids/%s/%s/series.json' % (studyUid, seriesUid))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
261 ['MainDicomTags']['SeriesInstanceUID']) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
262 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
263 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
264 WEBDAV.delete('/webdav/by-uids/%s/%s/%s.dcm' % (studyUid, seriesUid, sopUid)) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
265 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) |
339 | 266 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) |
267 | |
268 | |
269 def test_by_patients(self): | |
270 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) | |
271 self.assertEqual(0, len(ListFiles('/webdav/by-patients/', True))) | |
272 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
273 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) | |
274 | |
275 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-patients/'))) | |
276 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
277 | |
278 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] | |
279 tags = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) | |
280 patient = '%s - %s' % (tags['PatientID'], tags['PatientName']) | |
281 study = '%s - %s' % (tags['StudyDate'], tags['StudyDescription']) | |
282 series = '%s - %s' % (tags['Modality'], tags['SeriesDescription']) | |
283 self.assertEqual('ozp00SjY2xG - KNIX', patient) | |
284 self.assertEqual('20070101 - Knee (R)', study) | |
285 self.assertEqual('MR - AX. FSE PD', series) | |
286 | |
287 self.assertEqual(1, len(ListFiles('/webdav/by-dates/', True))) | |
288 self.assertEqual(1, len(ListFiles('/webdav/by-patients/', True))) | |
289 self.assertEqual(1, len(ListFiles('/webdav/by-studies/', True))) | |
290 self.assertEqual(3, len(ListFiles('/webdav/by-uids/', True))) | |
291 | |
292 self.assertEqual(0, len(ListFiles('/webdav/by-patients/', False))) | |
293 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-patients/'))) | |
294 self.assertEqual(0, len(ListFiles('/webdav/by-patients/%s' % patient, False))) | |
295 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-patients/%s' % patient))) | |
296 self.assertEqual(0, len(ListFiles('/webdav/by-patients/%s/%s' % (patient, study), False))) | |
297 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-patients/%s/%s' % (patient, study)))) | |
298 | |
299 folder = '/webdav/by-patients/%s/%s/%s' % (patient, study, series) | |
300 self.assertEqual(1, len(ListFiles(folder, False))) | |
301 self.assertEqual(2, len(WEBDAV.ls(folder))) | |
302 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(ListFiles(folder, False) [0])) | |
303 | |
340
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
304 files = ListFiles('/webdav/by-patients/', True) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
305 self.assertEqual(1, len(files)) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
306 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(files[0])) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
307 |
339 | 308 a = DownloadFile('%s/%s.dcm' % (folder, i)) |
309 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as f: | |
310 self.assertEqual(a, f.read()) | |
311 | |
312 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
313 WEBDAV.delete('%s/%s.dcm' % (folder, i)) | |
314 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
315 | |
316 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) | |
317 self.assertEqual(0, len(ListFiles('/webdav/by-patients/', True))) | |
318 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
319 self.assertEqual(0, len(ListFiles('/webdav/by-uids/', True))) | |
320 | |
321 | |
322 def test_by_studies(self): | |
323 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
324 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-patients/'))) | |
325 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
326 | |
327 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] | |
328 tags = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) | |
329 study = '%s - %s - %s' % (tags['PatientID'], tags['PatientName'], tags['StudyDescription']) | |
330 series = '%s - %s' % (tags['Modality'], tags['SeriesDescription']) | |
331 self.assertEqual('ozp00SjY2xG - KNIX - Knee (R)', study) | |
332 self.assertEqual('MR - AX. FSE PD', series) | |
333 | |
334 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', False))) | |
335 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-studies/'))) | |
336 self.assertEqual(0, len(ListFiles('/webdav/by-studies/%s' % study, False))) | |
337 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-studies/%s' % study))) | |
338 | |
339 folder = '/webdav/by-studies/%s/%s' % (study, series) | |
340 self.assertEqual(1, len(ListFiles(folder, False))) | |
341 self.assertEqual(2, len(WEBDAV.ls(folder))) | |
342 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(ListFiles(folder, False) [0])) | |
343 | |
340
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
344 files = ListFiles('/webdav/by-studies/', True) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
345 self.assertEqual(1, len(files)) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
346 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(files[0])) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
347 |
339 | 348 a = DownloadFile('%s/%s.dcm' % (folder, i)) |
349 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as f: | |
350 self.assertEqual(a, f.read()) | |
351 | |
352 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
353 WEBDAV.delete('%s/%s.dcm' % (folder, i)) | |
354 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
355 self.assertEqual(0, len(ListFiles('/webdav/by-studies/', True))) | |
356 | |
357 | |
340
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
358 def test_by_dates(self): |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
359 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
360 self.assertEqual(1, len(WEBDAV.ls('/webdav/by-patients/'))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
361 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
362 |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
363 i = UploadInstance(ORTHANC, 'DummyCT.dcm')['ID'] |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
364 tags = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
365 year = tags['StudyDate'][0:4] |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
366 month = tags['StudyDate'][4:6] |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
367 study = '%s - %s - %s' % (tags['PatientID'], tags['PatientName'], tags['StudyDescription']) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
368 series = '%s - %s' % (tags['Modality'], tags['SeriesDescription']) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
369 self.assertEqual('ozp00SjY2xG - KNIX - Knee (R)', study) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
370 self.assertEqual('MR - AX. FSE PD', series) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
371 |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
372 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', False))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
373 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-dates/'))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
374 self.assertEqual(0, len(ListFiles('/webdav/by-dates/%s' % year, False))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
375 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-dates/%s' % year))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
376 self.assertEqual(0, len(ListFiles('/webdav/by-dates/%s/%s-%s' % (year, year, month), False))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
377 self.assertEqual(2, len(WEBDAV.ls('/webdav/by-dates/%s/%s-%s' % (year, year, month)))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
378 |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
379 folder = '/webdav/by-dates/%s/%s-%s/%s/%s' % (year, year, month, study, series) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
380 self.assertEqual(1, len(ListFiles(folder, False))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
381 self.assertEqual(2, len(WEBDAV.ls(folder))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
382 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(ListFiles(folder, False) [0])) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
383 |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
384 files = ListFiles('/webdav/by-dates/', True) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
385 self.assertEqual(1, len(files)) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
386 self.assertEqual('%s/%s.dcm' % (folder, i), unquote(files[0])) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
387 |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
388 a = DownloadFile('%s/%s.dcm' % (folder, i)) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
389 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as f: |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
390 self.assertEqual(a, f.read()) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
391 |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
392 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
393 WEBDAV.delete('%s/%s.dcm' % (folder, i)) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
394 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) |
60775134a406
finalized webdav standalone tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
339
diff
changeset
|
395 self.assertEqual(0, len(ListFiles('/webdav/by-dates/', True))) |
339 | 396 |
342
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
397 |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
398 def test_delete_folder(self): |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
399 # These deletes should have no effect |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
400 UploadInstance(ORTHANC, 'DummyCT.dcm') |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
401 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
402 WEBDAV.delete('/webdav/by-uids/1.2.840.113619.2.176.2025.1499492.7391.1171285944.390/study.json') |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
403 WEBDAV.delete('/webdav/by-uids/1.2.840.113619.2.176.2025.1499492.7391.1171285944.390/1.2.840.113619.2.176.2025.1499492.7391.1171285944.394/series.json') |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
404 WEBDAV.delete('/webdav/by-dates/2007/2007-02') |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
405 WEBDAV.delete('/webdav/by-dates/2006') |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
406 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
407 |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
408 for path in [ |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
409 '/webdav/by-uids/1.2.840.113619.2.176.2025.1499492.7391.1171285944.390/1.2.840.113619.2.176.2025.1499492.7391.1171285944.394/1.2.840.113619.2.176.2025.1499492.7040.1171286242.109.dcm', |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
410 '/webdav/by-patients/ozp00SjY2xG - KNIX/20070101 - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm', |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
411 '/webdav/by-studies/ozp00SjY2xG - KNIX - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm', |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
412 '/webdav/by-dates/2007/2007-01/ozp00SjY2xG - KNIX - Knee (R)/MR - AX. FSE PD/66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d.dcm', |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
413 ]: |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
414 tokens = path.split('/') |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
415 for i in range(4, len(tokens) + 1): |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
416 p = '/'.join(tokens[0:i]) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
417 UploadInstance(ORTHANC, 'DummyCT.dcm') |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
418 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
419 WEBDAV.delete(p) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
420 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) |
bf8369ea3ff1
more tests of webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
340
diff
changeset
|
421 |
358
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
422 |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
423 def test_upload_zip(self): |
610
ec657d1a62a6
fix compatibility with python3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
511
diff
changeset
|
424 f = BytesIO() |
358
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
425 with zipfile.ZipFile(f, 'w') as z: |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
426 z.writestr('hello/world/invalid.txt', 'Hello world') |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
427 with open(GetDatabasePath('DummyCT.dcm'), 'rb') as g: |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
428 c = g.read() |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
429 z.writestr('hello/world/dicom1.dcm', c) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
430 z.writestr('hello/world/dicom2.dcm', c) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
431 |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
432 f.seek(0) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
433 archive = f.read() |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
434 |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
435 self.assertEqual(0, len(DoGet(ORTHANC, '/studies'))) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
436 |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
437 with tempfile.NamedTemporaryFile(delete = True) as f: |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
438 f.close() |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
439 with open(f.name, 'wb') as g: |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
440 g.write(archive) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
441 WEBDAV.upload(f.name, '/webdav/uploads/DummyCT.zip') |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
442 os.unlink(f.name) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
443 |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
444 while len(ListFiles('/webdav/uploads/', True)) > 1: |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
445 time.sleep(0.1) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
446 time.sleep(0.1) # Give some more delay to be sure that the store has succeeded (necessary for Wine) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
447 |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
448 instances = DoGet(ORTHANC, '/instances') |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
449 self.assertEqual(1, len(instances)) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
450 self.assertEqual('66a662ce-7430e543-bad44d47-0dc5a943-ec7a538d', instances[0]) |
458b2d887ea0
WebDAV: test_upload_zip
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
343
diff
changeset
|
451 |
339 | 452 |
338
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
453 try: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
454 print('\nStarting the tests...') |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
455 unittest.main(argv = [ sys.argv[0] ] + args.options) |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
456 |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
457 finally: |
edaeb57bf01f
creating tests for webdav
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
458 print('\nDone') |