Issue1109
Created on 2008-08-22.10:31:27 by wesleys, last changed 2008-11-04.15:27:35 by fwierzbicki.
Messages | |||
---|---|---|---|
msg3445 (view) | Author: Wesley Schwengle (wesleys) | Date: 2008-08-22.10:31:26 | |
I have the following function: def _cmd(self, type, *args): calling = inspect.stack()[1][3] print calling.replace("2", "To") #return self.cmd("create" + type + self.cmd_prefix, *args) Jython 2.2.1: snapshotTosnaphot Jython 2.5a1: Traceback (most recent call last): File "./pylogic.py", line 53, in <module> test_audit_jobs() File "./pylogic.py", line 38, in test_audit_jobs k.snapshot2snaphot("test") File "./../lib/OSS/bladelogic/AuditJob.py", line 24, in snapshot2snaphot return self._cmd("SnapshotToSnapshot", *args) File "./../lib/OSS/bladelogic/AuditJob.py", line 19, in _cmd calling = inspect.stack()[1][3] File "/opt/bladelogic/jython/Lib/inspect.py", line 888, in stack return getouterframes(sys._getframe(1), context) File "/opt/bladelogic/jython/Lib/inspect.py", line 869, in getouterframes framelist.append((frame,) + getframeinfo(frame, context)) File "/opt/bladelogic/jython/Lib/inspect.py", line 844, in getframeinfo lines, lnum = findsource(frame) File "/opt/bladelogic/jython/Lib/inspect.py", line 510, in findsource if pat.match(lines[lnum]): break IndexError: index out of range: 138 |
|||
msg3518 (view) | Author: Jim Baker (zyasoft) | Date: 2008-09-13.18:19:19 | |
test_inspect.py has tests for inspect.stack, they look comprehensive, and they pass. Need to have a more comprehensive test submitted for us to reproduce. |
|||
msg3733 (view) | Author: Frank Wierzbicki (fwierzbicki) | Date: 2008-11-03.19:06:30 | |
Hey Jim -- I tried exercising the code snippet, and could not get it to fail, maybe it was accidentally fixed? Certainly it isn't enough code to reproduce the problem. Since you haven't heard from the original poster for a while now, do you want to close it? |
|||
msg3734 (view) | Author: Frank Wierzbicki (fwierzbicki) | Date: 2008-11-03.19:22:55 | |
oops didn't mean to close -- I'll let Jim decide on that. |
|||
msg3747 (view) | Author: Wesley Schwengle (wesleys) | Date: 2008-11-04.10:41:58 | |
I saw the bug got closed because you haven't received an update from me. These are the classes which are involved and how I can trigger the bug. baseclass.py: #!/usr/bin/env bljython import sys import inspect class baseclass: '''baseclass, abstract class''' def __init__(self, jli = None): '''Initialize the class''' self.debug = 0 self.jli(jli) self.cmd_prefix = self.__module__.split('.')[-1] def jli(self, jli = None): """Set a jli component so we can call it""" if jli != None: self.jli = jli if self.debug: self.debug(self.debug) return self.jli def _cmd(self, *args): '''Executes the JLI command''' print "%s %s" % (self.cmd_prefix, " ".join(args)); # return self.jli.cmd(self.cmd_prefix, *args) def debug(self, debug): '''Enable debuggin on the jli''' self.debug = debug if self.jli != None: self.jli['debug'] = debug def _log_error(self, msg): '''Log an error in case we need to log it..''' print msg sys.exit(4); def _unsupported(self): '''Function which tells the user the called function is not supported..''' print "Unsupported function '%s.%s()' called" % (self.cmd_prefix, inspect.stack()[1][3]) def print_me(self): '''Function just here for testing.. to be removed''' print self.cmd_prefix print dir(self) DepotSoftware.py: #!/usr/bin/env bljython import baseclass import inspect class DepotSoftware(baseclass.baseclass): '''The DepotSoftware name space contains commands to add software to the Depot. The commands in this name space sometimes refer to software packages. A software package is a BLPackage containing one or more software items. ''' def _add2(self, *args): calling = [ k.capitalize() for k in inspect.stack()[1][3].split('_') ] return self._cmd("add" + "".join(calling) + "ToDepotByGroupName", *args) def os_hotfix(self, *args): return self._add2(*args) def rpm(self, *args): return self._add2(*args) def service_pack(self, *args): return self._add2(*args) def solaris_package(self, *args): return self._add2(*args) def solaris_patch(self, *args): return self._add2(*args) def solaris_patch_cluster(self, *args): return self._add2(*args) def aix_package(self, *args): return self._add2(*args) def aix_patch(self, *args): return self._add2(*args) def custom_software(self, *args): return self._add2(*args) def hpux_bundle(self, *args): return self._add2(*args) def hpux_patch(self, *args): return self._add2(*args) def hpux_product(self, *args): return self._add2(*args) def install_shield_package(self, *args): return self._add2(*args) def msi_package(self, *args): return self._add2(*args) In pylogic.py (testscript) I have the following functions, calling all the public functions from the class: def test_depot_software(): k = DepotSoftware.DepotSoftware() k.jli(cli) # cli can be a anything, as long as it is set. You don't have the Bladelogic cli class I assume :) k.aix_package() k.aix_patch() k.custom_software() k.hpux_bundle() k.hpux_patch() k.hpux_product() k.install_shield_package() k.msi_package() k.os_hotfix() k.rpm() k.service_pack() k.solaris_package() k.solaris_patch() k.solaris_patch_cluster() When this code is run with Jython 2.5a1: Traceback (most recent call last): File "./pylogic.py", line 160, in <module> test_depot_software() File "./pylogic.py", line 109, in test_depot_software k.aix_package() File "./../lib/OSS/bladelogic/DepotSoftware.py", line 35, in aix_package return self._add2(*args) File "./../lib/OSS/bladelogic/DepotSoftware.py", line 13, in _add2 calling = [ k.capitalize() for k in inspect.stack()[1][3].split('_') ] File "/opt/bladelogic/jython.2.5a1/Lib/inspect.py", line 888, in stack return getouterframes(sys._getframe(1), context) File "/opt/bladelogic/jython.2.5a1/Lib/inspect.py", line 869, in getouterframes framelist.append((frame,) + getframeinfo(frame, context)) File "/opt/bladelogic/jython.2.5a1/Lib/inspect.py", line 844, in getframeinfo lines, lnum = findsource(frame) File "/opt/bladelogic/jython.2.5a1/Lib/inspect.py", line 510, in findsource if pat.match(lines[lnum]): break IndexError: index out of range: 747 Jython 2.2.1: DepotSoftware addAixPackageToDepotByGroupName DepotSoftware addAixPatchToDepotByGroupName DepotSoftware addCustomSoftwareToDepotByGroupName DepotSoftware addHpuxBundleToDepotByGroupName DepotSoftware addHpuxPatchToDepotByGroupName DepotSoftware addHpuxProductToDepotByGroupName DepotSoftware addInstallShieldPackageToDepotByGroupName DepotSoftware addMsiPackageToDepotByGroupName DepotSoftware addOsHotfixToDepotByGroupName DepotSoftware addRpmToDepotByGroupName DepotSoftware addServicePackToDepotByGroupName DepotSoftware addSolarisPackageToDepotByGroupName DepotSoftware addSolarisPatchToDepotByGroupName DepotSoftware addSolarisPatchClusterToDepotByGroupName |
|||
msg3748 (view) | Author: Wesley Schwengle (wesleys) | Date: 2008-11-04.10:57:33 | |
I saw an update to 2.5a3, installed that one and the bug is resolved in that release. So the bug can remain closed. |
|||
msg3751 (view) | Author: Frank Wierzbicki (fwierzbicki) | Date: 2008-11-04.15:27:34 | |
Wesley: Excellent! Thanks for taking the time to test this! |
History | |||
---|---|---|---|
Date | User | Action | Args |
2008-11-04 15:27:35 | fwierzbicki | set | messages: + msg3751 |
2008-11-04 10:57:35 | wesleys | set | messages: + msg3748 |
2008-11-04 10:42:00 | wesleys | set | messages: + msg3747 |
2008-11-03 19:52:39 | zyasoft | set | status: open -> closed resolution: postponed -> works for me title: inspect.stack() not working as intented -> inspect.stack() not working as intended |
2008-11-03 19:22:56 | fwierzbicki | set | status: closed -> open resolution: works for me -> postponed messages: + msg3734 |
2008-11-03 19:06:30 | fwierzbicki | set | status: open -> closed resolution: postponed -> works for me messages: + msg3733 nosy: + fwierzbicki |
2008-09-13 18:19:19 | zyasoft | set | assignee: zyasoft resolution: postponed messages: + msg3518 nosy: + zyasoft |
2008-08-22 10:31:27 | wesleys | create |
Supported by Python Software Foundation,
Powered by Roundup