Commit 2d647a18a6492f1b7661824505ae1d4dd8260745

Authored by Christian Herdtweck
1 parent 8f5d3eed

tests: Add some comments to testdata_reader

tests/test_utils/testdata_reader.py
  1 +"""
  2 +Helper functions to deal with zip-encrypted test files.
  3 +
  4 +Some test samples alerted antivirus software when installing oletools. Those
  5 +samples were therefore "hidden" in encrypted zip-files. These functions help
  6 +using them.
  7 +"""
  8 +
1 9 import os, sys, zipfile
2 10 from os.path import dirname, abspath, normpath, join
3 11 from . import DATA_BASE_DIR
4 12  
  13 +# Passwort used to encrypt problematic test samples inside a zip container
5 14 ENCRYPTED_FILES_PASSWORD='infected-test'
6 15  
  16 +# import zipfile in a way compatible with all kinds of old python versions
7 17 if sys.version_info[0] <= 2:
8 18 # Python 2.x
9 19 if sys.version_info[1] <= 6:
... ... @@ -18,11 +28,23 @@ else:
18 28 from zipfile import is_zipfile
19 29 ENCRYPTED_FILES_PASSWORD = ENCRYPTED_FILES_PASSWORD.encode()
20 30  
  31 +
21 32 def read(relative_path):
  33 + """
  34 + Return contents of unencrypted file inside test data dir.
  35 +
  36 + see also: `read_encrypted`.
  37 + """
22 38 with open(get_path_from_root(relative_path), 'rb') as file_handle:
23 39 return file_handle.read()
24 40  
  41 +
25 42 def read_encrypted(relative_path, filename=None):
  43 + """
  44 + Return contents of encrypted file inside test data dir.
  45 +
  46 + see also: `read`.
  47 + """
26 48 z = zipfile.ZipFile(get_path_from_root(relative_path))
27 49  
28 50 if filename == None:
... ... @@ -33,5 +55,7 @@ def read_encrypted(relative_path, filename=None):
33 55 z.close()
34 56 return contents
35 57  
  58 +
36 59 def get_path_from_root(relative_path):
37   - return join(DATA_BASE_DIR, relative_path)
38 60 \ No newline at end of file
  61 + """Convert path relative to test data base dir to an absolute path."""
  62 + return join(DATA_BASE_DIR, relative_path)
... ...