はじめに Django Restframework で開発したAPIに対するテストコードを作成する。 そのために必要なノウハウやパッケージなどについてまとめる。 サンプルコード こちらに作成したコードを参考に以下の話を進めていく。 sampleapp.tests 配下にテスト用のコードを作成している。 使用したライブラリ等 Pythonは3.8.x Django 3.0.x Django Restframework 3.11.x factory-boy 2.11.x pytest 4.0.x pytest-django 3.4.x テスト向けのライブラリ説明 factory-boy テストデータを簡単に作成するためのライブラリ。 https://factoryboy.readthedocs.io/en/latest/ https://github.com/FactoryBoy/factor
Pythonへの型アノテーション導入を目指すGuido van Rossum氏 mypy の型アノテーションの構文を Python に取り込もうとメーリングリストで提案したニュースが話題になりました。今夏に話題になったニュースを今冬にフォローするという季節外れ感ですが、ずっと興味はあって「あとで読む」状態になっていたのを調べてみました。 基本的には mypy のドキュメントから自分の興味のあるところをかいつまんで説明しています。分かりにくいところがあれば原文を参照してください。 Welcome to Mypy documentation! mypy とは mypy は Python の静的型チェッカー (static type checker) です。wikipedia:静的コード解析 や wikipedia:en:Lint (software) ツールの一種だと説明されています。 Pyt
django-noseとdjango-caverageを利用していた時の問題点 Django 1.10 でカバレッジを計測していた際に、下記のコードのカバレッジが計測できない問題がありました。 デコレータのカバレッジが計測されない 多重継承しているスーパークラスのカバレッジが計測されない デコレータのカバレッジが計測されないために、全てのコードをパスしているテストコードを書いてもカバレッジが100%にならず、計測結果をみてもこれ以上テストが必要かどうかをカバレッジから確認することができない状態でした。 そこで、 Coverage.py を利用してカバレッジを計測するようにしました。 Coverage.py をインストールする pip を使って Coverage.py をインストールします。 $ pip install coverage Coverage.py の設定ファイルを作成する プロ
Djangoのテストについて考えていたところ、以下の記事に出会いました。 Djangoのテストの書き方について勉強したのでまとめる - c-bata web Django Best Practice への道 #2 後者の記事にもある通り、pytestではテストの失敗内容を細かく出せそうでした。 そのため、Django向けのpytestライブラリpytest-djangoを使ってテストコードを書いてみました。 目次 環境 試したけど分からなかったこと 試してないこと テスト対象のアプリ セットアップとアプリ作成 pytest.iniの作成 Modelのテスト URL解決のテスト Viewのテスト Clientを使う場合 RequestFactoryを使う場合 Formのテスト 全体の流れのテスト 正常系 リダイレクトの確認 テンプレートに渡すcontextの値の確認 Viewの確認 データベ
ツール [Editor] Atom (Awesome Atom) [Git] gibo (.gitignore 自動生成ツール) [Git] tig (CLIクライアント) [Git] hub (CLIクライアント) [Git] GitHub Desktop (GUIクライアント) [静的解析(SQL)] SQLint (Ruby製) [静的解析(シェルスクリプト)] ShellCheck (Haskell製) [静的解析(テキスト校正)] RedPen [静的解析(テキスト校正)] textlint Online REPL (Read-eval-print loop) Online-REPs-and-REPLs repl.it - Online REPL, Compiler & IDE Vagrant (Discover Vagrant Boxes, awesome-vagrant) [
1. コーディングスタイルを知る PEP8 – Style Guide for Python Code PEP257 – Docstring Conventions Pythonコミュニティが推奨するスタイルが存在する PEP 8 -- Style Guide for Python Code via http://legacy.python.org/dev/peps/pep-0008/ インデントはスペース4 行の長さ最大79文字 import分の順序 命名スタイル etc .. PEP 257 -- Docstring Conventions via http://legacy.python.org/dev/peps/pep-0257/ ツールでチェック pep8 … pepe8のチェック pep257 … pep257のチェック pyflakes … 文法エラーなどをチェック flak
はじめに GitLab CI/CDとCircleCIの違いを比較する記事です。 GitLab CI/CDって何? GitLab has integrated CI/CD pipelines to build, test, deploy, and monitor your code Rated #1 in the Forrester CI Wave™ Forresterに認められたNo.1 CIサービス。 GitLab supports development teams with a well-documented installation and configuration processes, an easy-to-follow UI, and a flexible per-seat pricing model that supports self service. GitLab’s
tl;dr; PythonのLinterであるflake8はpep8に従っていろいろと教えてくれますが、 マニュアルで行うとなかなかに面倒な修正案を提示します。 近頃Golangの自動フォーマッタに慣れてしまった自分としては、 もう勝手にやってくれよ、とちょいちょい思ってました。 非同期にLinterを実行するVimプラグインとして有名なALEには、 エラー箇所を自動で修正するALEFixコマンドがあり、前々からやってみようかなと思っていたので、 この機会にALEでPythonコードのLintと自動整形をやらせてみたいと思います。 前提 NeoVim 私は素のVimではなくNeoVim使いなのでこっちを使った方法になります。 素のVimとはPythonのパス解決の仕方が異なるのでご注意ください。 NVIM v0.3.1 あとALEを使うのでALEのインストールはもちろん必要です。公式は丁寧
複数の Python バージョンでテストを実行するツールに tox があります。 tox と pytest で Python 2/3 両対応のテストを実行する - forest book tox ツールそのものがとても便利なのですが、この tox テストを並列実行してくれるツールがリリースされました。 detox: Python Package Index 既に tox を使っている環境であれば、detox をインストールするだけで良いです。 $ pip install detox 使い方は tox と全く同じで特別な設定は不要です。tox コマンドを実行する代わりに detox コマンドを実行します。試しに実行してみましょう。 (test)$ detox py26 create: /Users/t2y/work/repo/littlehttpserver/.tox/py26 GLOB s
libuvのPython実装であるpyuvのPython3対応しているときに、Python2.6/2.7/3.0/3.1/3.2で個別にテストする必要がありました。 各バージョンのPythonを入れるのも割と大変だし、各バージョンごとに確認するのも非常に手間です。 lazyな私にはこんなのやってられません。がおー。めんどくせー。 というわけでいろいろテストツールをいろいろ探していたら、79.pyで @aodag さんにtoxを教えていただきました。 早速使ってみたので、軽くメモを残しておきます。 ドキュメント ↓を読めば大体わかるはず。 Welcome to the tox automation project — tox 1.4.2-1 documentation ざっくり説明すると Pythonライブラリを複数バージョンでテストするツールです。 CI(Jenkinsなど)で使うことも想
経緯 転職してPythonメインの会社で働いてます エディタハラスメントはなくなってVim使ってもいい会社です VimでPythonをゴリゴリかける環境を作ろう 追記 以前この記事を書いてからそこそこ経ちました。 いまだに、たまにイイねとかが飛んできて、ありがたい気持ちとともに、 記事作成当時とはだいぶvimrcも代わり、内容が古いままで申し訳ないなと思い追記をさせて頂きました。 各プラグインの設定も記載したので参考にしていただければ幸いです。 なお一通り設定するとこうなります。 必須 会社に入ってからvimの設定をすべてneovim用に書き直しました。 今環境構築するならサクサク動くneovimでやってやりましょう。 vim8のプラグイン対応状況が変わり、deoplete以外であればvim8で動きます。 しかし私はdeopleteが使いたいのでneovimです。 neovim 0.2.0
直すのが大変そうな時も pyformat や isort など補助してくれそうなツールがある。 2015-08-11 追記 (既に修正済み): PEP 257 周りの説明で事実の誤認があった。 hacking だけでは PEP 257 のチェックはしないようだ。 flake8-pep257 をインストールすることでチェックできる。 エディタの補助 可能な限りはやく気がつくため、エディタのプラグイン等で自動チェックできるなら、した方がいい。 以下は代表的なエディタでの flake8 でチェックするプラグイン。 これらの機能を取り込んだ IDE 化するプラグインもあるので、好きな方を使おう。 Vim ... vim-flake8 Emacs ... flymakes-python-pyflakes Sublime Text ... Python Flake8 Lint Atom ... lin
pandasを使っていて、ある関数の挙動を確認するのに、ちょろっとお試しのデータセットがあれば良いなぁ、と思うことがある。 俺も以前の記事で、pandasの使い方を説明するときに、自作のデータセットを使って書いていた。 [pandas]特定の条件を満たす行を削除する - 子供の落書き帳 Renaissance これくらい簡単なものならばまだ良いけど、いちいちデータセットを自分で作るより、すぐに読み込んで使えれば楽である。 ありがちなのはiris(アヤメ)のデータだけど、その手のサンプルのデータセットを簡単に読み込む方法はあるのだろうか? pandas自体にサンプルデータセットの機能は無い pandas:urlを指定してread_csv seaborn scikit-learn statsmodels経由でR datasets まとめ pandas自体にサンプルデータセットの機能は無い pa
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く