Mercurial > p > roundup > code
annotate roundup/install_util.py @ 928:23c9d4f86380
Added the web access and email access permissions..
...so people can restrict access to users who register through the
email interface (for example). Also added "security" command to the
roundup-admin interface to display the Role/Permission config for an
instance.
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Thu, 01 Aug 2002 00:56:22 +0000 |
| parents | fc461bf67c99 |
| children | 9b910e8d987d |
| rev | line source |
|---|---|
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
1 # |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
3 # This module is free software, and you may redistribute it and/or modify |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
4 # under the same terms as Python, so long as this copyright message and |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
5 # disclaimer are retained in their original form. |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
6 # |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
10 # POSSIBILITY OF SUCH DAMAGE. |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
11 # |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
17 # |
|
409
fc461bf67c99
Added .newitem extension
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
406
diff
changeset
|
18 # $Id: install_util.py,v 1.7 2001-11-24 01:00:13 jhermann Exp $ |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
19 |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
20 __doc__ = """ |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
21 Support module to generate and check fingerprints of installed files. |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
22 """ |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
23 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
24 import os, sha, shutil |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
25 |
|
409
fc461bf67c99
Added .newitem extension
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
406
diff
changeset
|
26 # ".filter", ".index", ".item", ".newitem" are roundup-specific |
|
fc461bf67c99
Added .newitem extension
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
406
diff
changeset
|
27 sgml_file_types = [".xml", ".ent", ".html", ".filter", ".index", ".item", ".newitem"] |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
28 hash_file_types = [".py", ".sh", ".conf", ".cgi", ''] |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
29 slast_file_types = [".css"] |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
30 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
31 digested_file_types = sgml_file_types + hash_file_types + slast_file_types |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
32 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
33 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
34 def checkDigest(filename): |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
35 """Read file, check for valid fingerprint, return TRUE if ok""" |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
36 # open and read file |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
37 inp = open(filename, "r") |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
38 lines = inp.readlines() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
39 inp.close() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
40 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
41 # get fingerprint from last line |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
42 if lines[-1][:6] == "#SHA: ": |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
43 # handle .py/.sh comment |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
44 fingerprint = lines[-1][6:].strip() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
45 elif lines[-1][:10] == "<!-- SHA: ": |
|
384
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
46 # handle xml/html files |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
47 fingerprint = lines[-1][10:] |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
48 fingerprint = fingerprint.replace('-->', '') |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
49 fingerprint = fingerprint.strip() |
|
384
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
50 elif lines[-1][:8] == "/* SHA: ": |
| 385 | 51 # handle css files |
|
384
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
52 fingerprint = lines[-1][8:] |
|
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
53 fingerprint = fingerprint.replace('*/', '') |
|
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
54 fingerprint = fingerprint.strip() |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
55 else: |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
56 return 0 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
57 del lines[-1] |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
58 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
59 # calculate current digest |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
60 digest = sha.new() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
61 for line in lines: |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
62 digest.update(line) |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
63 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
64 # compare current to stored digest |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
65 return fingerprint == digest.hexdigest() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
66 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
67 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
68 class DigestFile: |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
69 """ A class that you can use like open() and that calculates |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
70 and writes a SHA digest to the target file. |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
71 """ |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
72 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
73 def __init__(self, filename): |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
74 self.filename = filename |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
75 self.digest = sha.new() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
76 self.file = open(self.filename, "w") |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
77 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
78 def write(self, data): |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
79 self.file.write(data) |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
80 self.digest.update(data) |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
81 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
82 def close(self): |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
83 file, ext = os.path.splitext(self.filename) |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
84 |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
85 if ext in sgml_file_types: |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
86 self.file.write("<!-- SHA: %s -->\n" % (self.digest.hexdigest(),)) |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
87 elif ext in hash_file_types: |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
88 self.file.write("#SHA: %s\n" % (self.digest.hexdigest(),)) |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
89 elif ext in slast_file_types: |
| 385 | 90 self.file.write("/* SHA: %s */\n" % (self.digest.hexdigest(),)) |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
91 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
92 self.file.close() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
93 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
94 |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
95 def copyDigestedFile(src, dst, copystat=1): |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
96 """ Copy data from `src` to `dst`, adding a fingerprint to `dst`. |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
97 If `copystat` is true, the file status is copied, too |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
98 (like shutil.copy2). |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
99 """ |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
100 if os.path.isdir(dst): |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
101 dst = os.path.join(dst, os.path.basename(src)) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
102 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
103 dummy, ext = os.path.splitext(src) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
104 if ext not in digested_file_types: |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
105 if copystat: |
|
388
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
387
diff
changeset
|
106 return shutil.copy2(src, dst) |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
107 else: |
|
388
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
387
diff
changeset
|
108 return shutil.copyfile(src, dst) |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
109 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
110 fsrc = None |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
111 fdst = None |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
112 try: |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
113 fsrc = open(src, 'r') |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
114 fdst = DigestFile(dst) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
115 shutil.copyfileobj(fsrc, fdst) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
116 finally: |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
117 if fdst: fdst.close() |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
118 if fsrc: fsrc.close() |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
119 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
120 if copystat: shutil.copystat(src, dst) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
121 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
122 |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
123 def test(): |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
124 import sys |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
125 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
126 testdata = open(sys.argv[0], 'r').read() |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
127 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
128 for ext in digested_file_types: |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
129 testfile = "__digest_test" + ext |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
130 |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
131 out = DigestFile(testfile) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
132 out.write(testdata) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
133 out.close() |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
134 |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
135 assert checkDigest(testfile), "digest ok w/o modification" |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
136 |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
137 mod = open(testfile, 'r+') |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
138 mod.seek(0) |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
139 mod.write('# changed!') |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
140 mod.close() |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
141 |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
142 assert not checkDigest(testfile), "digest fails after modification" |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
143 |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
144 os.remove(testfile) |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
145 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
146 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
147 if __name__ == '__main__': |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
148 test() |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
149 |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
150 # |
|
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
151 # $Log: not supported by cvs2svn $ |
|
409
fc461bf67c99
Added .newitem extension
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
406
diff
changeset
|
152 # Revision 1.6 2001/11/22 15:46:42 jhermann |
|
fc461bf67c99
Added .newitem extension
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
406
diff
changeset
|
153 # Added module docstrings to all modules. |
|
fc461bf67c99
Added .newitem extension
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
406
diff
changeset
|
154 # |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
155 # Revision 1.5 2001/11/12 23:17:38 jhermann |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
156 # Code using copyDigestedFile() that passes unit tests |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
157 # |
|
388
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
387
diff
changeset
|
158 # Revision 1.4 2001/11/12 23:14:40 jhermann |
|
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
387
diff
changeset
|
159 # Copy function, and proper handling of unknown file types |
|
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
387
diff
changeset
|
160 # |
|
387
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
161 # Revision 1.3 2001/11/12 22:38:48 richard |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
162 # bleah typo |
|
c066d3c91728
Copy function, and proper handling of unknown file types
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
385
diff
changeset
|
163 # |
| 385 | 164 # Revision 1.2 2001/11/12 22:37:13 richard |
| 165 # Handle all the various file formats in roundup | |
| 166 # | |
|
384
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
167 # Revision 1.1 2001/11/12 22:26:32 jhermann |
|
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
168 # Added install utils (digest calculation) |
|
a72ad731b2cb
Handle all the various file formats in roundup
Richard Jones <richard@users.sourceforge.net>
parents:
383
diff
changeset
|
169 # |
|
383
a213e2a90364
Added install utils (digest calculation)
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
diff
changeset
|
170 |
