小编Kri*_*son的帖子

我怎么能模拟sqlite3.Cursor

我一直在拉着我的头发试图找出如何sqlite3.Cursor专门模拟这个fetchall方法的类.

请考虑以下代码示例

import sqlite3

from mock import Mock, patch
from nose.tools import assert_false


class Foo:
    def check_name(name):
        conn = sqlite3.connect('temp.db')
        c = conn.cursor()
        c.execute('SELECT * FROM foo where name = ?', name)
        if len(c.fetchall()) > 0:
            return True
        return False


@patch('sqlite3.Cursor.fetchall', Mock(return_value=['John', 'Bob']))
def test_foo():
    foo = Foo()
    assert_false(foo.check_name('Cane'))
Run Code Online (Sandbox Code Playgroud)

运行nosetests结果没有有趣的错误

E
======================================================================
ERROR: temp.test_foo
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/koddsson/.virtualenvs/temp/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/koddsson/.virtualenvs/temp/lib/python2.7/site-packages/mock.py", line 1214, in patched
    patching.__exit__(*exc_info) …
Run Code Online (Sandbox Code Playgroud)

python sqlite unit-testing mocking nose

6
推荐指数
1
解决办法
3566
查看次数

SVG标签占用了额外的空间

所以我在HTML5中使用SVG元素遇到了一个奇怪的大小问题.这比我怀疑的空间要大得多.图像中的每个小矩形都是一个矩形元素,宽度和高度为"20".

SVG元素的高度和宽度应为20*10 = 200,但尺寸为680x508.

您可以在此处查看经过检查的svg元素 - > http://i.stack.imgur.com/xrofn.png

HTML看起来像这样:

    <svg>
    <rect x='0' y='0' height='20' width='20' stroke='black' stroke-width=''/>
    <rect x='0' y='20' height='20' width='20' stroke='black' stroke-width=''/>
    <rect x='0' y='40' height='20' width='20' stroke='black' stroke-width=''/>
    ...
    </svg>
Run Code Online (Sandbox Code Playgroud)

应该注意的是,我正在运行node.js和mustache.js.

编辑:显然SVG在不确定宽度/高度时会做一些事情.手动设置可以解决问题.

    <svg height="200" width="200">
Run Code Online (Sandbox Code Playgroud)

html5 svg node.js mustache

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

在Clojurescript Dommy中隐藏一个元素

我试图隐藏ClojureScript中的一个元素,更具体地说是Dommy库.这是我到目前为止所得到的:

ClojureScript:

(ns fucking_about                                                                  
  (:require                                                                        
    [dommy.utils :as utils]                                                        
    [dommy.core :as dommy])                                                        
  (:use-macros                                                                     
    [dommy.macros :only [node sel sel1]]))

(map dommy/toggle! (sel :.hide))
Run Code Online (Sandbox Code Playgroud)

HTML:

<html>
<head><title></title></head>
<body>
    <ul>
        <li class="show">Derp</li>
        <li class="hide">Herp</li>
        <li class="show">ies!</li>
    </ul>
    <script type="text/javascript" src="script.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是在浏览器中打开网站时我没有得到任何结果,我不明白为什么:<我在Github页面之外找不到任何关于ClojureScript的文档.

clojure clojurescript

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

在clojure中反复获取随机元素

我在Clojure特别是Noir web框架中乱搞并试图生成一个随机的瓷砖网格.

这可能是非常糟糕的代码,但我正在学习!:d

(def tiles [:stairs :stone :monster]) 

(defpage "/" []
     (common/layout
       [:div {:class "level"}
        (repeatedly 10 [:div {:class "row"}
          (repeatedly 10
            [:div {:class (str "tile " (name (rand-nth tiles)))}])])]))
Run Code Online (Sandbox Code Playgroud)

但是这段代码抛出异常:

Wrong number of args (0) passed to: PersistentVector - (class clojure.lang.ArityException)
Run Code Online (Sandbox Code Playgroud)

clojure noir

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

返回值不是(quote <value>)

我正在尝试4clojure上的挑战,并陷入以下代码

(ns com.koddsson.for-clojure
  (:use [clojure.test :only [is deftest run-tests]]))

(defn my-flatten
  ([x] (if (not (and (seq? x) (vector? x)))
           x                      ; If x is not a sequence nor a vector
           (map my-flatten x))))  ; else recursivly apply the flatten function

(deftest test28
  (is (= (my-flatten '((1 2) 3 [4 [5 6]])) '(1 2 3 4 5 6)))
  (is (= (my-flatten ["a" ["b"] "c"]) '("a" "b" "c")))
  (is (= (my-flatten '((((:a))))) '(:a))))

(run-tests)
Run Code Online (Sandbox Code Playgroud)

它生成以下输出.

? bubblegum 20 ? ? …
Run Code Online (Sandbox Code Playgroud)

testing clojure quote

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