小编chr*_*ley的帖子

如何同时运行两个功能

我正在运行测试,但我想同时运行2个函数.我有一个摄像头,我告诉它通过肥皂水移动,我然后通过SSH登录摄像机检查摄像机设置的速度.当我检查相机停止的速度时,没有速度可用.有没有办法可以让这些功能同时运行来测试相机的速度.示例代码如下:

class VerifyPan(TestAbsoluteMove):

    def runTest(self):

        self.dest.PanTilt._x=350

        # Runs soap move command
        threading.Thread(target = SudsMove).start()

        self.command = './ptzpanposition -c 0 -u degx10'

        # Logs into camera and checks speed
        TestAbsoluteMove.Ssh(self)

        # Position of the camera verified through Ssh (No decimal point added to the Ssh value)
        self.assertEqual(self.Value, '3500')
Run Code Online (Sandbox Code Playgroud)

我现在尝试了如下所述的线程模块.该线程不与TestAbsoluteMove.Ssh()函数同步运行.我还需要其他任何代码才能完成这项工作.

我已经看过将参数放入线程语句中,该语句表明线程在Ssh()函数运行时运行.有谁知道在这个声明中输入什么?

对不起,如果我没有正确解释."SudsMove"功能可将摄像机和"Ssh"功能日志移动到摄像机中,并检查摄像机当前所处的速度.问题是,当"Ssh"功能登录相机时已停止.我需要两个函数并行运行,所以我可以在它仍在移动时检查相机速度.

谢谢

python testing multithreading synchronization function

15
推荐指数
2
解决办法
1万
查看次数

使用SUDS在Python中进行错误处理

我一直试图通过使用SUDS的wsdl文件来控制相机.我有代码工作,但我想将错误处理放入脚本.我尝试过不同的异常但无法使脚本正常工作.当我输入无效坐标时,我收到错误.我正在使用的代码如下,接着是我收到的错误.

#!/home/build/Python-2.6.4/python

import suds
from suds.client import Client

####################################################################
#
#   Python SUDS Script that controls movement of Camera
#
####################################################################
#
#                    Absolute Move Function
#
####################################################################

def absoluteMove():

    # connects to WSDL file and stores location in variable 'client'
    client = Client('http://file.wsdl')

    # Create 'token' object to pass as an argument using the 'factory' namespace
    token = client.factory.create('ns4:ReferenceToken')
    print token

    # Create 'dest' object to pass as an argument and values passed to this object
    dest = client.factory.create('ns4:PTZVector') …
Run Code Online (Sandbox Code Playgroud)

python web-services suds

14
推荐指数
2
解决办法
3万
查看次数

如何将SOAP头传递给未在WSDL文件中定义的python SUDS

我的网络上有一个摄像头,我试图用肥皂水连接,但泡沫不会发送所需的所有信息.我需要在WSDL文件中放置未定义的额外soap标头,以便摄像头可以理解该消息.所有头文件都包含在SOAP信封中,然后suds命令应该在邮件正文中.

我已经检查了suds 网站 ,它说要像这样传入标题:(这会将元素作为标题传递,但我有一个信封,所以我不知道如何输入这个)

from suds.sax.element import Element
client = client(url)
ssnns = ('ssn', 'http://namespaces/sessionid')
ssn = Element('SessionID', ns=ssnns).setText('123')
client.set_options(soapheaders=ssn) 
result = client.service.addPerson(person)
Run Code Online (Sandbox Code Playgroud)

现在,我不确定如何实现这一点.比方说,我有以下标题:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP
ENC="http://www.w3.org/2003/05/soap-encoding"
<wsa:MessageID SOAP-ENV:mustUnderstand="true">urn:uuid:43268c01-f09c6</wsa:MessageID>
 <SOAP-ENV:Header>
Run Code Online (Sandbox Code Playgroud)

使用这个或类似的例子有谁知道如何将有效的SOAP消息传递给目标服务?

谢谢

python xml wsdl suds soapheader

14
推荐指数
1
解决办法
2万
查看次数

获取Try语句以循环直到获得正确的值

我试图让用户输入1到4之间的数字.我有代码检查数字是否正确,但我希望代码循环几次,直到数字正确.有谁知道如何做到这一点?代码如下:

def Release():


    try:
        print 'Please select one of the following?\nCompletion = 0\nRelease ID = 1\nVersion ID = 2\nBuild ID = 3\n'
        a = int(input("Please select the type of release required: "))
        if a == 0:
            files(a)
        elif a == 1:
            files(a)
        elif a == 2:
            files(a)
        elif a == 3:
            files(a)
        else:
            raise 'incorrect'
    except 'incorrect':    
        print 'Try Again'
    except:
        print 'Error'

Release()
Run Code Online (Sandbox Code Playgroud)

我也收到了关于我输入的异常的错误:

kill.py:20: DeprecationWarning: catching of string exceptions is deprecated
  except 'incorrect':
Error
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

python loops exception-handling try-catch

13
推荐指数
2
解决办法
7万
查看次数

单元测试模块在脚本中时sys.argv [1]出现问题

我有一个脚本可以执行各种操作并使用sys.argv访问参数,但是当脚本到达代码的unittest部分时,它说没有模块.我的脚本是:

class MyScript():

    def __init__(self):
        self.value = sys.argv[1]

    def hello(self):
        print self.value

    def suite(self):
        modules_to_test = ('external_sanity_onvif', 'starttest')
        alltests = unittest.TestSuite()
        for module in map(__import__, modules_to_test):
            alltests.addTest(unittest.findTestCases(module))
        return alltests


if __name__ == '__main__': 
    Run = MyScript()
    Run.hello()
    log_file = 'log_file.txt'
    test_file = open(log_file, "w") 
    runner = unittest.TextTestRunner(test_file)
    unittest.main(defaultTest='Run.suite', testRunner=runner)
Run Code Online (Sandbox Code Playgroud)

假设我./script.py Hello在命令行中输入.我得到的错误是:

AttributeError: 'module' object has no attribute 'Hello'
Run Code Online (Sandbox Code Playgroud)

如果我删除unittest模块,它的工作原理.此外,如果我删除testrunner日志并将其保留在:

unittest.main(defaultTest='Run.suite')
Run Code Online (Sandbox Code Playgroud)

这仍然不起作用.

谁能帮忙.

谢谢

我试过这个黑客,但它仍然试图阅读sys.argv.

project = sys.argv[4:]
sys.argv = sys.argv[0:4]
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这一点,argv但它仍然厌倦了阅读额外的参数.

python unit-testing sys argv

11
推荐指数
2
解决办法
1万
查看次数

通过Python发送多个联系人

我正在尝试向多个地址发送电子邮件.下面的代码显示了我正在尝试实现的目标.当我添加两个地址时,电子邮件不会发送到第二个地址.代码是:

   me = 'a@a.com'
   you = 'a@a.com, a@a.com'
   msg['Subject'] = "Some Subject"
   msg['From'] = me
   msg['To'] = you

   # Send the message via our own SMTP server
   s = smtplib.SMTP('a.a.a.a')
   s.sendmail(me, [you], msg.as_string())
   s.quit()
Run Code Online (Sandbox Code Playgroud)

我试过了:

you = ['a@a.com', 'a@a.com']
Run Code Online (Sandbox Code Playgroud)

you = 'a@a.com', 'a@a.com'
Run Code Online (Sandbox Code Playgroud)

谢谢

python

10
推荐指数
2
解决办法
6258
查看次数

删除以Python名称开头的文件

我有一些我想删除的文件,它们在开始时具有相同的名称,但具有不同的版本号.有谁知道如何使用他们的名字开头删除文件?

Eg.
version_1.1
version_1.2
Run Code Online (Sandbox Code Playgroud)

有没有办法删除任何以名称版本开头的文件?

谢谢

python

9
推荐指数
3
解决办法
2万
查看次数

使用SUDS测试WSDL

有谁知道一个很好的SUDS教程.我正在尝试对WSDL文件运行测试,我无法找到有关如何执行此操作的任何信息.SUDS与SOAPy有很大的不同吗?任何人都建议它对存储在WSDL文件中的函数运行冒烟测试.

我已经读过Python 2.6+不再支持SOAPAy.这是真的?

我有一个我输入的WSDL文件:

from suds.client import Client

client = Client('http://10.51.54.50/ptz.wsdl')

client.service.GetNode()
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

    in open
    response = self._open(req, data)
  File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 407, in _open
    '_open', req)
  File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 367, in  _call_chain
    result = func(*args)
  File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 1146, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 1121, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 111] Connection refused>
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?

我可以通过浏览器连接到此文件.我已经安装了所有的泡沫包.是否还需要其他设置?

python soap suds

7
推荐指数
1
解决办法
2万
查看次数

内存工具泄漏.Net可执行文件

可能重复:
什么是一些好的.NET Profilers?

我试图在Windows中测试应用程序的内存泄漏.我已经看过Linux替代品(例如Valgrind),我正在为Windows寻找类似的工具..Net的问题在于内存不像Linux那样立即发布.

我对.Net的了解有限,所以我的问题是我想使用一个工具来查找Windows .Net可执行文件的内存泄漏.理想情况下,程序应该能够在我使用应用程序时检测到任何内存泄漏.有谁知道这样的工具或有任何建议来解决这个问题?

在此先感谢您的帮助.


谢谢你的回复.任何人都可以告诉我,如果这些程序中的任何一个允许您从命令行执行并将内存泄漏报告输出到文本文件中.

谢谢

c# c++ memory-leaks memory-management visual-studio-2010

7
推荐指数
1
解决办法
1万
查看次数

在Suds python中覆盖Soap Envelope

我有一个相机,我正试图连接它与泡沫.我试图发送原始的xml,并发现阻止xml suds工作的唯一因素是不正确的Soap信封命名空间.

信封命名空间是:

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

我想把它重写为:

xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"

为了在python中添加命名空间,我尝试以下代码:

message = Element('Element_name').addPrefix(p='SOAP-ENC', u='www.w3.org/ENC')

但是当我添加SOAP-ENV到命名空间时,它不会写,因为它被硬编码到suds绑定中.有没有办法在泡沫中覆盖这个?

谢谢你的帮助.

python xml soap suds envelope

6
推荐指数
2
解决办法
3840
查看次数