pytest-mock是一個基於python自帶的unittest.mock所做的包裝,可以讓我們使用pytest撰寫測試時能更容易調用mock。
Aug 13, 2023・Contributed by
續上篇講解完
Jul 16, 2023・Contributed by
引言
如果你曾經用過unittest.mock.patch,不知道在使用時你有沒有一個疑問:
我這個patch用下去,究竟要patch哪裡?
我是誰,我在哪裡
案例
如果今天我們的資料夾結構長這樣
root/
----app/
Jun 18, 2023・Contributed by
序言
在之前的幾篇隨筆中,各位應該不難發現,在測試進行時,我們需要import被測試的module,畢竟要測試一個函式的功能,首先得先把他抓出來吧。
但如果今天被測試的對象是一個Flask的API呢?
@app.route('/login', methods=['GET', 'POST'])
def login():
# 簡單的登入實作,get時給登入頁的html,post時驗證輸入的帳號密碼
if request.method == 'POST':
May 21, 2023・Contributed by
序言
今天隨筆的主題是VCR
各位如果在須測試的程式中,有使用別人開發的API,或是去爬一些網頁的時候,一定會覺得在撰寫測試的過程中覺得厭世。
為什麼? 想像一個API會回傳多少資訊,要注意response的格式對不對,headers可能也要注意,算上別的意外,如果要把這個API的所有回傳都mock,那會有複數的mock需要維護,我們就只能對著API一個一個把mock刻出來。
但是別擔心,今天的我們有...VCR!
pytest-recording
May 09, 2023・Contributed by
序言
在各種程式與環境組合起來運行時,我們常常會遇到一個問題:
這段code剛剛在我的電腦上還會動阿?怎麼到別台電腦就壞了?
環境的不同/網路連線狀態的差異/port設定/ENV設定/random seed...有太多種可能
這種不穩定的情況若是在測試過程中發生,我們就稱之為 Flaky Test
flaky有什麼問題?
May 05, 2023・Contributed by
在使用pytest-mock的mocker fixture時
所有mock假造的物件都會在當個測試結束時被關掉,所以不會影響其他測試
但如果發生了以下的事情
def test_function(mocker):
mock1 = mocker.patch('module1.function1')
# Do some test using mock1 to generate something you want
May 03, 2023・Contributed by
閱讀本文前,我們會假設各位都知道 fixture是一個"測試單元都能拿去用的公共物件"
May 02, 2023・Contributed by
有天用projection query的時候看到我的output居然增殖了
from google.cloud import datastore
client = datastore.Client()
query = client.query(kind='Person')
query.projection = ['emails']
results = query.fetch()
如果只看這段程式碼,應該會覺得“就很一般的投影查詢,我只要看找下來的entity內的email column而已”。
Feb 23, 2023・Contributed by
2023年的第一個Taipei.py結束瞜
這邊會簡短的分享一下本次的內容,希望這之後會成為固定的月刊
2023年1月的meetup連結在此:
https://www.meetup.com/taipei-py/events/290416829/
演講1. Static Application Security with Snyk
snyk的介紹
先上github
Jan 13, 2023・Contributed by
https://plugins.jetbrains.com/plugin/11084-pylint
Dec 30, 2022・Contributed by
最近在處理gcp datastore下來的資料時發現一個情況之前沒有處理過,簡單介紹一下
假設我們有一個列表,其中包含了一些數字:
numbers = [1, 2, 3, 4]
# 遍歷列表並顯示每個數字
for number in numbers:
print(number)
Dec 28, 2022・Contributed by