Coverage for /scratch/builds/bob/bob.med.tb/miniconda/conda-bld/bob.med.tb_1637571489937/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/bob/med/tb/test/__init__.py: 88%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

32 statements  

1#!/usr/bin/env python 

2# coding=utf-8 

3 

4"""Unit tests""" 

5 

6import tempfile 

7import logging 

8 

9logger = logging.getLogger(__name__) 

10 

11TESTDB_TMPDIR = None 

12_URL = ( 

13 "http://www.idiap.ch/software/bob/data/bob/bob.med.tb/master/_testdb.zip" 

14) 

15_RCKEY = "bob.med.tb.montgomery.datadir" 

16_FOLDER_NAME = "MontgomerySet_Light" 

17 

18 

19def teardown_package(): 

20 global TESTDB_TMPDIR 

21 if TESTDB_TMPDIR is not None: 

22 logger.info(f"Removing temporary directory {TESTDB_TMPDIR.name}...") 

23 TESTDB_TMPDIR.cleanup() 

24 

25 

26def mock_dataset(): 

27 global TESTDB_TMPDIR 

28 from bob.extension import rc 

29 

30 if (TESTDB_TMPDIR is not None) or (_RCKEY in rc): 

31 logger.info("Test database already set up - not downloading") 

32 else: 

33 logger.info("Test database not available, downloading...") 

34 import zipfile 

35 import urllib.request 

36 

37 # Download the file from `url` and save it locally under `file_name`: 

38 with urllib.request.urlopen(_URL) as r, tempfile.TemporaryFile() as f: 

39 f.write(r.read()) 

40 f.flush() 

41 f.seek(0) 

42 TESTDB_TMPDIR = tempfile.TemporaryDirectory(prefix=__name__ + "-") 

43 print(f"Creating test database at {TESTDB_TMPDIR.name}...") 

44 logger.info(f"Creating test database at {TESTDB_TMPDIR.name}...") 

45 with zipfile.ZipFile(f) as zf: 

46 zf.extractall(TESTDB_TMPDIR.name) 

47 

48 from ..data import montgomery 

49 

50 if TESTDB_TMPDIR is None: 

51 # if the user has the Montgomery directory ready, then we do a normal return 

52 return rc["bob.med.tb.montgomery.datadir"] 

53 

54 # else, we do a "mock" return 

55 return TESTDB_TMPDIR.name + "/" + _FOLDER_NAME+ "/"