小编Mic*_*ico的帖子

测试Kotlin中的预期异常

在Java中,程序员可以为JUnit测试用例指定预期的异常,如下所示:

@Test(expected = ArithmeticException.class)
public void omg()
{
    int blackHole = 1 / 0;
}
Run Code Online (Sandbox Code Playgroud)

我怎么在Kotlin做这个?我尝试了两种语法变体,但没有一种工作:

import org.junit.Test as test

// ...

test(expected = ArithmeticException) fun omg()
    Please specify constructor invocation;
    classifier 'ArithmeticException' does not have a companion object

test(expected = ArithmeticException.class) fun omg()
                           name expected ^
                                           ^ expected ')'
Run Code Online (Sandbox Code Playgroud)

testing unit-testing exception kotlin

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

在Python中,为什么'r +'而不是'rw'用来表示"读写"?

在Python中,打开文件时,我们使用'r'指示只读和只'w'写.然后我们'r+'用来表示"读写".

为什么不用'rw'?没有'rw'看上去比更自然'r+'


1月25日编辑:

呵呵..我想我的问题看起来有点混乱..我试图问的是:'r'是的"读"的第一个字母'w'的"写",因此第一个字母'r''w'看起来自然映射到"读"和"写".但是,当涉及到"读写"时,Python使用'r +'代替'rw'.

所以问题实际上是关于命名原理而不是它们之间的行为差​​异.

python

20
推荐指数
1
解决办法
6037
查看次数

Django检查是否选中了复选框

我目前正在开发一个相当简单的django项目,可以使用一些帮助.它只是一个简单的数据库查询前端.

目前,我仍然坚持使用复选框,单选按钮等来改进搜索

我遇到的问题是弄清楚如何知道何时选中复选框(或多个).到目前为止我的代码是这样的:

views.py

def search(request):
    if 'q' in request.GET:
        q = request.GET['q']
        if not q:
            error = True;
        elif len(q) > 22:
            error = True;
        else:           
            sequence = Targets.objects.filter(gene__icontains=q)
            request.session[key] = pickle.dumps(sequence.query)
            return render(request, 'result.html', {'sequence' : sequence, 'query' : q, 'error' : False})    
    return render(request, 'search.html', {'error': True})
Run Code Online (Sandbox Code Playgroud)

search.html

<p>This is a test site</p></center>

        <hr>
        <center>
            {% if error == true %}
                <p><font color="red">Please enter a valid search term</p>
            {% endif %}
         <form action="" method="get">
            <input type="text" name="q"> …
Run Code Online (Sandbox Code Playgroud)

python django checkbox

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

使用标签显示networkx图

我正在尝试使用networkx创建带标签的图形,但是无法正确地获取节点和标签.简而言之,标签不会排列在右侧节点上,并且有些节点在显示时没有边缘.

首先,我创建了一个图形,添加了节点和边,然后添加了标签.

图形数据来自pandas DataFrame对象,其中包含两个列:employee和manager名称:

                emp_name             mgr_name
0        Marianne Becker                 None
1            Evan Abbott      Marianne Becker
2               Jay Page      Marianne Becker
3             Seth Reese      Marianne Becker
4         Maxine Collier      Marianne Becker
Run Code Online (Sandbox Code Playgroud)

...

每个节点都是名称,边是mgr_name到emp_name的关系.

我的图代码:

import networkx as nx
G=nx.DiGraph()

#set layout
pos=nx.spring_layout(G)

#add nodes
G.add_nodes_from(df.emp_name)
G.nodes()
G.add_node('None')

#create tuples for edges
subset = df[['mgr_name','emp_name']]
tuples = [tuple(x) for x in subset.values]

#add edges
G.add_edges_from(tuples)
G.number_of_edges()

#draw graph
import matplotlib.pyplot as plt
nx.draw(G, labels = True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会有一个树状结构,员工姓名作为每个节点的标签.

输出图像是 在此输入图像描述

python networkx

10
推荐指数
1
解决办法
6088
查看次数

为什么设置绑定方法到python对象创建循环引用?

我正在使用Python 2.7,我喜欢那个困扰我的问题.

这是最简单的例子:

>>> class A(object):
    def __del__(self):
        print("DEL")
    def a(self):
        pass

>>> a = A()
>>> del a
DEL
Run Code Online (Sandbox Code Playgroud)

这就像预期的那样......现在我正在尝试改变a()对象的方法,a发生的事情是在更改后我不能再删除a了:

>>> a = A()
>>> a.a = a.a
>>> del a
Run Code Online (Sandbox Code Playgroud)

只是做一些检查我a.a在作业之前和之后打印参考

>>> a = A()
>>> print a.a
<bound method A.a of <__main__.A object at 0xe86110>>
>>> a.a = a.a
>>> print a.a
<bound method A.a of <__main__.A object at 0xe86110>>
Run Code Online (Sandbox Code Playgroud)

最后我使用objgraph模块试图理解为什么没有释放对象:

>>> b = A()
>>> import …
Run Code Online (Sandbox Code Playgroud)

python memory-leaks

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

resolveLocalFileSystemURI错误代码5 windows phone 7 phonegap

我已经尝试过这项工作1. 捕获照片 2. 从它保存的地方获取照片 3. 以base64的形式阅读照片

我遵循了这种方法:

var cameraOptions = {};
function capturePhoto() {
    console.log("capture photo");
    cameraOptions = { quality: 70, destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA, saveToPhotoAlbum: true };
    doIt();
}
function doIt() {
    navigator.camera.getPicture(onCameraSuccess, onCameraFail, cameraOptions);
}
function onCameraSuccess(imageURI) {
    console.log("Camera Success");

    $('#MokhalfaPhotoLocation').val(imageURI);
    console.log("Image URI: " + imageURI);
    window.resolveLocalFileSystemURI(imageURI, onResolveImageSuccess, onFail); //get the file from the physical path...
}
  function onResolveImageSuccess(fileEntry) {
    fileEntry.file(gotFile, onFail);
}
function gotFile(file) {
    readDataUrl(file);
}
function readDataUrl(file) {
    console.log("read file as dataUrl");
    var reader = …
Run Code Online (Sandbox Code Playgroud)

camera uri file windows-phone-7 cordova

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

如何在Python中单元测试覆盆子pi的GPIO输出值

我正在使用python制作Raspberry Pi程序.我想写unittest我的python代码.如何获得输出状态GPIO

测试目标类是下面的.我想在调用stop,brake,rotateClockwise和rotateCounterClockwise后检查输出.

import RPi.GPIO as GPIO
# moter management class, with like TA7291P
class MoterManager:
    def __init__(self, in1Pin, in2Pin):
        self.__in1Pin = in1Pin
        self.__in2Pin = in2Pin

    def stop(self):
        self.__offIn1()
        self.__offIn2()

    def brake(self):
        elf.__onIn1()
        self.__onIn2()

    def rotateClockwise(self):
        self.__onIn1()
        self.__offIn2()

    def rotateCounterClockwise(self):
        self.__offIn1()
        self.__onIn2()

    def __onIn1(self):
        GPIO.output( self.__in1Pin, True)
        print "In1 on"

    def __onIn2(self):
        GPIO.output( self.__in2Pin, True)
        print "In2 on"

    def __offIn1(self):
        GPIO.output( self.__in1Pin, False )
        print "In1 off"

    def __offIn2(self):
        GPIO.output( self.__in2Pin, False )
        print "In2 off"
Run Code Online (Sandbox Code Playgroud)

python raspberry-pi python-unittest

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

运行T-Test时出现Python运行时错误

我正在调用一个python函数来从我的C++代码中计算"t-test".函数调用如下:

#include <iostream>
#include "Python.h"
#include "/usr/local/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h"

#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION

int main(int argc, char** argv)
{
    Py_Initialize();

    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append(\"PATH_TO_MOD\")");
    PyObject *pName = PyString_FromString("tmpPyth");
    PyObject *pModule = PyImport_Import(pName);


    double arr[] ={9.74219, 10.2226, 8.7469, 8.69791, 9.96442, 9.96472, 9.37913, 9.75004};
    double arr1[] ={9.74219, 10.2226, 8.7469, 8.69791, 9.96442, 9.96472, 9.37913, 9.75004};

    PyObject *lst = PyList_New(8);
    PyObject *lst1 = PyList_New(8);
    // if (!lst)
    //     return NULL;
    for (int i = 0; i < 8; i++) {
        PyObject *num = PyFloat_FromDouble(arr[i]);
        PyObject *num1 = PyFloat_FromDouble(arr1[i]); …
Run Code Online (Sandbox Code Playgroud)

c++ python numpy

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

模拟在函数内部导入的模块

是否可以模拟在函数内部导入的模块?

例如

def my_func(input):
    import something_else
    something_else.do_something(input)
Run Code Online (Sandbox Code Playgroud)

由于循环依赖,我在函数内部有一个导入。基于我的谷歌搜索,我认为我是 SOL,但想知道是否有人知道如何使这成为可能。

我只想验证 do_something 是否被调用。

python unit-testing mocking python-mock

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

在 Python Flask 蓝图中模拟函数

我有一个名为 api 的 Python Flask 蓝图,其中有一个名为 utils 的文件,其中包含一个我试图模拟的函数。该 utils 文件的路径是app/api/utils.py,而我试图模拟的函数是is_file_writeable().

我正在对位于 的蓝图中的路线进行测试app/api/configs.py。在 中configs.py,我按如下方式导入函数:

from app.api.utils import is_file_writeable
Run Code Online (Sandbox Code Playgroud)

我尝试了以下补丁装饰器:

@patch('app.api.configs.is_file_writeable', return_value=False)
Run Code Online (Sandbox Code Playgroud)

@patch('app.api.utils.is_file_writeable', return_value=False)
Run Code Online (Sandbox Code Playgroud)

两者分别返回以下错误:

AttributeError: 'Blueprint' 对象没有属性 'configs'

AttributeError: 'Blueprint' 对象没有属性 'utils'

关于为什么我收到导入错误的任何想法?

python unit-testing patch mocking flask

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

检查是否已使用不同的参数多次调用函数

假设我们有一个功能f(x,y)和另一个功能

def g():
       # ...
       f(i,j) # i,j vary and f is called multiple times
       # ...
Run Code Online (Sandbox Code Playgroud)

我们要编写一个单元测试,以检查是否f调用了次数并具有正确的参数。

def test_g():
      with patch('mymodule.f') as function:
          assert function.gacs.call_count == correct_no_calls
Run Code Online (Sandbox Code Playgroud)

function.assert_called_with(...)
Run Code Online (Sandbox Code Playgroud)

但这仅指最后一次通话。因此,假设g电话f(1,2),然后f(2,3)function.assert_called_with(1,2)False

此外,还有

function.call_args_list
Run Code Online (Sandbox Code Playgroud)

产生call具有正确参数的对象列表。将此列表与call我们在单元测试中创建的对象进行比较感觉很麻烦。call似乎是模拟库的内部类。

有一个更好的方法吗?我使用此设置来测试apply功能的并行执行。

python testing unit-testing mocking

4
推荐指数
2
解决办法
4306
查看次数

如何在 str_to_date mysql 函数中添加一些天数?

我有一个表格,其中有一个字符串日期,格式为01.04.2015. 现在我想在该字符串日期格式列中添加一些天数。为此,我在下面的查询中添加了几天。

SELECT DATE_ADD(level2,INTERVAL 28 DAY) level2 FROM  sales_purchase_stocks_hs WHERE stock= '123'
Run Code Online (Sandbox Code Playgroud)

当我运行这个查询时,我得到了错误的日期输出。输出是2001-05-18 15:00:00。但我的原始日期字符串是01.04.2015(2015 年 4 月 1 日)。

我尝试使用以下查询

SELECT STR_TO_DATE(DATE_ADD(level2,INTERVAL 28 DAY),'%d.%m.%Y') level2 FROM  sales_purchase_stocks_hs WHERE stock = '123'.
Run Code Online (Sandbox Code Playgroud)

但是当我运行查询时,我得到null了结果。任何人都可以帮助我哪里做错了吗?

php mysql date

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

对于循环扫描,c中的时间少一个

用户输入一串字符,但在此之前输入字符串的大小.然后我必须阅读并计算每个字母输入的次数.

这是我的代码:

#include <stdio.h>

char ab[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; //Size = 26

int main(void)
{

  int i, j, size, counter[26];
  char temp;

  for(i=0; i<26; i++)
  { 
      counter[i]=0;
  }

  scanf("%d",&size);

  for(i=0; i<size; i++)
  {
    scanf("%c",&temp);

    for(j=0; j<26; j++)
    {
          if(ab[j]==temp)
          {
            counter[j]++;
              break;
          }
      }
  }

  for(i=0; i<26; i++) 
  {
      printf("We have %d %c\n",counter[i],ab[i]);
  }

  return 0; …
Run Code Online (Sandbox Code Playgroud)

c loops for-loop scanf

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