Coverage for python/lsst/daf/persistence/test/testMapper.py: 41%

26 statements  

« prev     ^ index     » next       coverage.py v6.4, created at 2022-06-02 03:43 -0700

1#!/usr/bin/env python 

2# 

3# LSST Data Management System 

4# Copyright 2017 LSST Corporation. 

5# 

6# This product includes software developed by the 

7# LSST Project (http://www.lsst.org/). 

8# 

9# This program is free software: you can redistribute it and/or modify 

10# it under the terms of the GNU General Public License as published by 

11# the Free Software Foundation, either version 3 of the License, or 

12# (at your option) any later version. 

13# 

14# This program is distributed in the hope that it will be useful, 

15# but WITHOUT ANY WARRANTY; without even the implied warranty of 

16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

17# GNU General Public License for more details. 

18# 

19# You should have received a copy of the LSST License Statement and 

20# the GNU General Public License along with this program. If not, 

21# see <http://www.lsstcorp.org/LegalNotices/>. 

22# 

23 

24import os 

25 

26from .. import ButlerLocation 

27from .. import Mapper 

28from .. import Storage 

29from . import TestObject 

30 

31 

32class EmptyTestMapper(Mapper): 

33 """Class that can be used as a stub for a mapper.""" 

34 

35 def __init__(self, root=None, parentRegistry=None, repositoryCfg=None, **kwargs): 

36 self.root = root 

37 self.kwargs = kwargs 

38 pass 

39 

40 

41class MapperForTestWriting(Mapper): 

42 

43 def __init__(self, root, **kwargs): 

44 self.root = root 

45 self.storage = Storage.makeFromURI(self.root) 

46 

47 def map_foo(self, dataId, write): 

48 python = TestObject 

49 persistable = None 

50 storage = 'PickleStorage' 

51 fileName = 'filename' 

52 for key, value in sorted(dataId.items()): 

53 fileName += '_' + key + str(value) 

54 fileName += '.txt' 

55 path = os.path.join(self.root, fileName) 

56 if not write and not os.path.exists(path): 

57 return None 

58 return ButlerLocation(python, persistable, storage, path, dataId, self, self.storage)