Coverage for src/P4OO/_Base.py: 89%

28 statements  

« prev     ^ index     » next       coverage.py v7.4.1, created at 2024-09-07 17:17 +0000

1###################################################################### 

2# Copyright (c)2011-2012,2024 David L. Armstrong. 

3# Copyright (c)2012, Cisco Systems, Inc. 

4# 

5# P4OO._Base.py 

6# 

7###################################################################### 

8 

9""" 

10Perforce _Base Class 

11 

12 P4OO._Base provides consistent construction and attribute handling 

13methods for all P4OO objects. 

14""" 

15 

16from P4 import P4 

17from dataclasses import dataclass, field 

18import logging 

19 

20 

21@dataclass(unsafe_hash=True) 

22class _P4OOBase: 

23# _p4Conn: P4 = field(default=None, compare=False, repr=False) 

24# p4PythonObj: P4 = field(default=None, compare=False, repr=False) 

25 _p4Conn: P4 = field(default=None, compare=False, repr=False) 

26 p4PythonObj: P4 = field(default=None, compare=False, repr=False) 

27 

28 def _uniqueID(self): 

29 return id(self) 

30 

31 def _initialize(self): 

32 return 1 

33 

34 def _logError(self, *args): 

35 logging.error(args) 

36 

37 def _logWarning(self, *args): 

38 logging.warning(args) 

39 

40 def _logDebug(self, *args): 

41 logging.debug(args) 

42 

43 def _runCommand(self, cmdName, **kwargs): 

44 p4Conn = self._getP4Connection() 

45 

46 return p4Conn.runCommand(cmdName, **kwargs) 

47 

48 def _getP4Connection(self): 

49 from P4OO._P4Python import _P4OOP4Python 

50 

51# print(self.p4PythonObj) 

52 if self._p4Conn is None: 

53# my $p4SQLDbh = $self->_getAttr( 'p4SQLDbh' ); 

54 

55 if self.p4PythonObj is not None: 

56 self._p4Conn = _P4OOP4Python(**{"p4PythonObj": self.p4PythonObj}) 

57# elsif( defined( $p4SQLDbh ) ) 

58# { 

59# require P4::OO::_Connection::P4toDB; 

60# $p4Conn = P4::OO::_Connection::P4toDB->new('p4SQLDbh' => $self->_getAttr('p4SQLDbh')); 

61# } 

62 else: 

63 self._p4Conn = _P4OOP4Python() 

64 

65 return self._p4Conn