Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from __future__ import print_function 

2from builtins import str 

3import os 

4import unittest 

5import shutil 

6import yaml 

7from sherlock.utKit import utKit 

8from fundamentals import tools 

9from os.path import expanduser 

10home = expanduser("~") 

11 

12packageDirectory = utKit("").get_project_root() 

13settingsFile = packageDirectory + "/test_settings.yaml" 

14 

15su = tools( 

16 arguments={"settingsFile": settingsFile}, 

17 docString=__doc__, 

18 logLevel="DEBUG", 

19 options_first=False, 

20 projectName=None, 

21 defaultSettingsFile=False 

22) 

23arguments, settings, log, dbConn = su.setup() 

24 

25# SETUP PATHS TO COMMON DIRECTORIES FOR TEST DATA 

26moduleDirectory = os.path.dirname(__file__) 

27pathToInputDir = moduleDirectory + "/input/" 

28pathToOutputDir = moduleDirectory + "/output/" 

29 

30try: 

31 shutil.rmtree(pathToOutputDir) 

32except: 

33 pass 

34# COPY INPUT TO OUTPUT DIR 

35shutil.copytree(pathToInputDir, pathToOutputDir) 

36 

37# Recursively create missing directories 

38if not os.path.exists(pathToOutputDir): 

39 os.makedirs(pathToOutputDir) 

40 

41# SETUP ALL DATABASE CONNECTIONS 

42from sherlock import database 

43db = database( 

44 log=log, 

45 settings=settings 

46) 

47dbConns, dbVersions = db.connect() 

48transientsDbConn = dbConns["transients"] 

49cataloguesDbConn = dbConns["catalogues"] 

50 

51# from fundamentals.mysql import writequery 

52# sqlQuery = """drop table if exists `tcs_helper_catalogue_tables_info`, `tcs_helper_catalogue_views_info`""" 

53# writequery( 

54# log=log, 

55# sqlQuery=sqlQuery, 

56# dbConn=cataloguesDbConn 

57# ) 

58 

59class test_database_cleaner(unittest.TestCase): 

60 

61 def test_database_cleaner_function(self): 

62 

63 from sherlock.database_cleaner import database_cleaner 

64 db = database_cleaner( 

65 log=log, 

66 settings=settings 

67 ) 

68 db.clean() 

69 

70 def test_database_cleaner_function_exception(self): 

71 

72 from sherlock import database_cleaner 

73 try: 

74 this = database_cleaner( 

75 log=log, 

76 settings=settings, 

77 fakeKey="break the code" 

78 ) 

79 this.get() 

80 assert False 

81 except Exception as e: 

82 assert True 

83 print(str(e)) 

84 

85 # x-class-to-test-named-worker-function