小编imm*_*eel的帖子

Python mock Patch os.environ并返回值

使用mock对conn()进行单元测试:

app.py

import mysql.connector
import os,urlparse

def conn():
  if 'DATABASE_URL' in os.environ:
     url=urlparse(os.environ['DATABASE_URL'])
     g.db = mysql.connector.connect(user=url.username,password=url.password, host=url.hostname,database=url.path[1:])
  else mysql.connector.error.Errors as err:
     return "Error
Run Code Online (Sandbox Code Playgroud)

test.py

def test_conn(self):
 with patch(app.mysql.connector) as mock_mysql:
   with patch(app.os.environ) as mock_environ
   con()
   mock_mysql.connect.assert_callled_with("credentials")
Run Code Online (Sandbox Code Playgroud)

错误:未调用断言 mock_mysql.connect.assert_called_with.

我认为这是因为'Database_url'不在我修补的os.environ中,因为没有对mysql_mock.connect进行测试调用.

问题:

1我需要做些什么改变才能使这个测试代码工作?

我还要修补'urlparse'吗?

python unit-testing dependency-injection mocking python-3.x

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

Golang:使用 gock 模拟多个 http 请求

我正在尝试使用 gock 模拟多个 http 请求进行单元测试,但出现此错误:

    Error:  Get https://192.64.23.33/q1/status: gock: cannot match any request
    Error:  Get https://194.55.5.6/q1/status: gock: cannot match any request
Run Code Online (Sandbox Code Playgroud)

代码:

func GetEmployee(url string, cli *http.Client) *Response {
    //Do something
    return Response
}

func company(url []string, cli *http.Client) []string {

    for employee := range url {
        resultList := GetEmployee(employee, cli)
        //Process and return an array
        return resultList
    }
}
Run Code Online (Sandbox Code Playgroud)

单元测试:

func TestCompany(t *Testing.t){
  Convey("testing function company",t,func() {
  expected := &Response: {
                Name:     "xyz",
                ID:       1",
                Status:   "active",

            }
  MockCli …
Run Code Online (Sandbox Code Playgroud)

unit-testing go

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

Go 例程:发出并发 API 请求

我正在尝试了解通道和 goroutines 并尝试编写一个 goroutine 来向服务器发出并发 API 请求

但是当我使用 goroutine 运行代码时,它似乎花费了与没有 goroutine 相同的时间。

func sendUser(user string, ch chan<- string)  {
    resp,err := http.get("URL"/user)
    //do the processing and get resp=string
    ch <- resp
}


func AsyncHTTP(users []string) ([]string, error) {
    ch := make(chan string)
    var responses []string
    var user string

    for _ , user = range users {
        go sendUser(user, ch)

        for {
            select {
            case r := <-ch:
                if r.err != nil {
                    fmt.Println(r.err)
                }
                responses = append(responses, r)
                **//Is there …
Run Code Online (Sandbox Code Playgroud)

concurrency channel go goroutine

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

如何使用 MySQL 和 Flask 创建表并插入数据

我正在尝试将数据插入 MySQL 表中。我能够连接到数据库,但在尝试插入数据时出现内部服务器错误。

from flask import Flask
from flaskext.mysql import MySQL

mysql = MySQL()
app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'test'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)

@app.route("/")
def create_table():
    cursor = mysql.get_db().cursor()
    query = "CREATE TABLE potlala (id INT NOT NULL PRIMARY KEY, name  VARCHAR(40), email VARCHAR(40))"
    query = "INSERT INTO pot13 (id, name, email) VALUES ('2222', 'Maria',  'mariaz@activestate.com')"
    cursor.execute(query)
    return "123"

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

python mysql flask

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

Golang切换声明

我是golang的新手,从python切换到golang.如何在"开关"中转换此if if语句

type Client struct {
    Type  string `json:"type"`
} 
Run Code Online (Sandbox Code Playgroud)

然后我像这样初始化这个结构:

a:= Client{"v1"}

if a.Type == "v1" {
    if err := apiClient.v1("I am version one"); err != nil {
        log.Printf(" Error: Sending type v1")
        return err
    }
} else if a.Type == "v2" {
    if err := apiClient.v2("I am version 2"); err != nil {
        log.Printf(" Error: Sending type v2\n")
        return err
    }
}  else {
        return errors.New(fmt.Sprintf(" Error: Invalid mertype...This Type"))
    }
Run Code Online (Sandbox Code Playgroud)

go switch-statement

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