小编kar*_*cow的帖子

如何在Python中的单元测试场景中模拟HTTP请求

我想为我所有与HTTP相关的测试都包含一个Web服务器.它不需要非常复杂.我宁愿不依赖在线.所以我可以测试一下我的程序的一些选项.

  1. 启动服务器
  2. 使用适当的mime类型,响应代码等创建一些资源(URI).
  3. 运行测试(最好不要为每个测试启动服务器)
  4. 关闭服务器.

有关此代码的任何提示都会有所帮助.我用BaseHTTPServer尝试了一些但尚未成功的东西.nosetests命令似乎无限期地等待.

import unittest
from foo import core

class HttpRequests(unittest.TestCase):
    """Tests for HTTP"""

    def setUp(self):
        "Starting a Web server"
        self.port = 8080
        # Here we need to start the server
        #
        # Then define a couple of URIs and their HTTP headers
        # so we can test the code.
        pass

    def testRequestStyle(self):
        "Check if we receive a text/css content-type"
        myreq = core.httpCheck()
        myuri = 'http://127.0.0.1/style/foo'
        myua = "Foobar/1.1"
        self.asserEqual(myreq.mimetype(myuri, myua), "text/css")

    def testRequestLocation(self):
        "another test" 
        pass …
Run Code Online (Sandbox Code Playgroud)

python unit-testing monkeypatching http mocking

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

使用lxml HTML解析UTF-8/unicode字符串

我一直试图用etree.HTML()解析一个编码为UTF-8的文本而没有成功.

? python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from lxml import etree
>>> import requests
>>> headers = {'User-Agent': "Opera/9.80 (Macintosh; Intel Mac OS X 10.8.0) Presto/2.12.363 Version/12.50"}
>>> r = requests.get("http://www.rakuten.co.jp/", headers=headers)
>>> r.status_code
200
>>> r.headers
{'x-cache': 'MISS from www.rakuten.co.jp', 'transfer-encoding': 'chunked', 'set-cookie': 'wPzd=lng%3DNA%3Acnt%3DCA; expires=Tue, 13-Aug-2013 16:51:38 GMT; path=/; domain=www.rakuten.co.jp', 'server': 'Apache', 'pragma': …
Run Code Online (Sandbox Code Playgroud)

python unicode parsing lxml utf-8

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

Cneonction和nnCoection HTTP标头

我们在Web上的互操作性方面经常遇到一些问题.浏览器供应商的这些问题之一是错误拼写的ConnectionHTTP标头.这两种形式给出了最常见的错误.

nnCoection:
Cneonction:
Run Code Online (Sandbox Code Playgroud)

有一些关于此的文章,包括Fun with HTTP headers.通常它会在一段时间内发生,然后消失.似乎其中一些是由负载平衡器创建的,例如:NetScaler Appliance.

您是否知道造成这些问题的任何其他硬件或软件实例?

更新此处的一个示例,其中一个站点没有发回好的ConnectionHTTP标头.

curl -sI ehg-nokiafin.hitbox.com
HTTP/1.1 200 OK
Date: Tue, 25 Jan 2011 20:35:45 GMT
Server: Hitbox Gateway 9.3.6-rc1
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP LAW NID PSA ADM OUR IND NAV COM"
Cneonction: close
Pragma: no-cache
Cache-Control: max-age=0, private, proxy-revalidate
Expires: Tue, 25 Jan 2011 20:35:46 GMT
Content-Type: text/plain
Content-Length: 23
Run Code Online (Sandbox Code Playgroud)

更新2011-01-26

在论坛亚马逊AWS左右,有一个线程有关nnCoection.评论说:

仅供参考,它错误拼写单词连接的原因是互联网校验和(简单的总和)仍然加起来,这样变化可以在数据包级别发生.如果它完全删除了标题,它将不得不停止转发响应,直到标题被完全读取,因此它可以重写标题,重新计算校验和然后发送它.

sum(ord(c) for c in "Connection") …
Run Code Online (Sandbox Code Playgroud)

interop http http-headers

18
推荐指数
1
解决办法
8899
查看次数

需要一个简单的"Hello World"示例,使用Python中的Webkit库

有没有人知道在Python中使用Webkit库的简单"Hello World"示例?我有一个GTK窗口,在里面我想放置Webkit.

使用Python/mozembed(Mozilla/Gecko),这很简单:

mozembed = gtkmozembed.MozEmbed()
mozembed.load_url('http://google.com/')
Run Code Online (Sandbox Code Playgroud)

..我已经创建了我的浏览器,如何使用WebKit执行此操作?

python webkit

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

解析电子邮件"已收到:"标题

我们需要Received:根据RFC 5321 解析电子邮件标头.我们需要提取邮件已遍历的域\ IP.此外,我们需要确定IP是否是内部IP.是否已经有一个可以提供帮助的库,特别是在C\C++中.

例如,

Received: from server.mymailhost.com (mail.mymailhost.com [126.43.75.123])
    by pilot01.cl.msu.edu (8.10.2/8.10.2) with ESMTP id NAA23597;
    Fri, 12 Jul 2002 16:11:20 -0400 (EDT)
Run Code Online (Sandbox Code Playgroud)

我们需要提取"by"服务器.

谢谢

email parsing

8
推荐指数
2
解决办法
5430
查看次数

如何用R创建时间散点图?

数据是一系列日期和时间.

date time
2010-01-01 09:04:43
2010-01-01 10:53:59
2010-01-01 10:57:18
2010-01-01 10:59:30
2010-01-01 11:00:44
…
Run Code Online (Sandbox Code Playgroud)

我的目标是用水平轴(x)上的日期和垂直轴(y)上的时间来表示散点图.我想如果同一天的时间不止一次,我也可以添加颜色强度.

创建日期直方图非常容易.

mydata <- read.table("mydata.txt", header=TRUE, sep=" ")
mydatahist <- hist(as.Date(mydata$day), breaks = "weeks", freq=TRUE, plot=FALSE)
barplot(mydatahist$counts, border=NA, col="#ccaaaa")
Run Code Online (Sandbox Code Playgroud)
  1. 我还没想出如何创建一个散点图,其中轴是日期和/或时间.
  2. 我也希望能够使用线性日期YYYY-MM-DD不需要轴,但也可以根据MM-DD等月份(如此不同的年份累积),或者甚至是周数轮换.

任何帮助,RTFM URI打包或提示都是受欢迎的.

r time-series scatter-plot ggplot2

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

使用NodeJS进行电子邮件处理

我正在编写一个Node应用程序,除此之外还需要接收电子邮件并对其进行处理,以便可以在Web页面中呈现(如Web邮件,列表存档等).我得到了Haraka的接收部分(https://github.com/baudehlo/Haraka).从那里到存储收到的邮件在Mongo很容易,只要它们是纯文本我就可以显示它们.

我缺少的部分是处理电子邮件内容可能涉及的各种方式,包括替代方案,HTML,附件,内联图像等等.这是一个相当陡峭的功能必须放在一起,我似乎无法找到一个JS库,将为我做.考虑到那里的库数量以及添加新库的速度,可能只是因为我错过了它 - 所以指点欢迎!

如果不这样做,如果我要用另一种语言移植现有的库,你会推荐我看哪一个?

谢谢!

javascript email node.js

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

Python 3项目初始化/原型设计

我正在寻找原型的正确方法,启动一个Python项目.

有没有新的候选人来启动项目并填充项目所需的所有文件?

python python-3.x

5
推荐指数
1
解决办法
516
查看次数

在mutt中使用python创建多部分/替代邮件

我想text/plain使用Markdown格式创建一条消息,并将其转换为multipart/alternative消息,其中text/html部分已从Markdown生成.我已经尝试使用filter命令通过创建消息的python程序对其进行过滤,但似乎消息没有通过正确发送.代码如下(这只是测试代码,看我是否可以multipart/alternative发消息.

import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

html = """<html>
          <body>
          This is <i>HTML</i>
          </body>
          </html>
"""

msgbody = sys.stdin.read()

newmsg = MIMEMultipart("alternative")

plain = MIMEText(msgbody, "plain")
plain["Content-Disposition"] = "inline"

html = MIMEText(html, "html")
html["Content-Disposition"] = "inline"

newmsg.attach(plain)
newmsg.attach(html)

print newmsg.as_string()
Run Code Online (Sandbox Code Playgroud)

不幸的是,在mutt中,只有在编写时才会将消息体发送到filter命令(不包括头文件).一旦我开始工作,我认为降价部分不会太难.

python mime mutt

5
推荐指数
1
解决办法
1945
查看次数

在 Python 中替换 SVG 的内部内容

我有一个 svg 模板,我正在复制和自定义该模板,以便为游戏创建多个不同的卡片和图块。我想以编程方式(最好在 Python 中)更改每张卡片模板中的元素。我似乎很容易找到更改属性或 css 的方法,但是我很难找到一个可以轻松解析现有 svg 并替换元素的库。

我的模板的 svg 看起来有点像这样:

<!--Square 2" Tile Template -->
<svg xmlns="http://www.w3.org/2000/svg" width="181" height="181">
    <text id="tile_text" y="90" width="100%" 
          style="text-align:center;font-family:Verdana;font-size:20">
        TEXT TO REPLACE
    </text>
</svg>
Run Code Online (Sandbox Code Playgroud)

我看过 Python 的lxmlxml.dom.minidom但它们似乎都不支持tile_text_element.innerHTML = "New Tile Name". 帮助?

编辑:

为了补充一点我的工作流程,我为每张卡片创建了一堆个性化的 svg,然后通过inkscape 将它们批量渲染为 pdf。

python xml svg dom

5
推荐指数
1
解决办法
3942
查看次数

Python,如何通过TCP发送数据

我需要创建一个侦听TCP连接的简单服务器.如果它接收文本on<EOF>off<EOF>然后它发送(回声)success.接收部分正在工作,但现在我需要它发回success.

码:

# import threading
import SocketServer

class TCPHandler(SocketServer.BaseRequestHandler): 

   def handle(self):
      self.msg = self.request.recv(1024).strip()
      if self.msg == "on<EOF>":
         print "Turning On..."
         #ECHO "SUCCESS<EOF>"        <----- I need the server to echo back "success"
      if self.msg == "off<EOF>":
         print "Turning Off..."
         #ECHO "SUCCESS<EOF>"        <----- I need the server to echo back "success"


      if __name__ == "__main__": 
         host, port = '192.168.1.100', 1100

  # Create server, bind to local host and port 
  server = SocketServer.TCPServer((host,port),TCPHandler)

  print …
Run Code Online (Sandbox Code Playgroud)

python tcp server

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

如何在 Flask 蓝图中模拟导入的函数

我有一个 Flask 蓝图,它从父 Flask 模块导入一个函数,如下所示: from app_name.utils import try_ad_connection

我正在尝试模拟/打补丁,try_ad_connection但我不知道我的目标在补丁装饰器中应该是什么,因为蓝图不是一个模块,所以定位app_name.blueprint_name.try_ad_connection似乎不起作用。

如果我将导入更改为整个 utils 文件并调用try_ad_connectionby app_name.utils.try_ad_connection,我可以通过app_name.utils.try_ad_connection用作目标来修补它,但我想避免导入整个文件以仅使用一个函数。

python unit-testing mocking flask

5
推荐指数
0
解决办法
284
查看次数

默认隐藏Iframe

在其中一个页面中,我需要有一个iframe,但是当用户加载页面时,我希望它默认隐藏.现在我有一个隐藏和显示按钮来隐藏和显示iframe,但它默认显示.我怎么能默认隐藏它?

这是我对这两个按钮的代码

<input type="button" value="Show Graph" onClick="$('graph').show();">
<input type="button" value="Hide Graph" onClick="$('graph').hide();">
Run Code Online (Sandbox Code Playgroud)

html javascript css iframe

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