ようへいの日々精進XP

よかろうもん

python

リトライ処理が適切に行われるかをテストする方法を考えた Python 編

tl;dr retry モジュール retry モジュール retry モジュールのシンプルな使い方 ということで, そのリトライ, ちゃんとリトライしてますか? まずは... リトライ で, リトライされていることをテストする 以上 tl;dr Python の retry モジュール超便利 で, …

直近で Python の unittest で試行錯誤していて得られた知見の幾つか (3)

環境 知見 (5) 例外発生をテストする 関数 テスト 知見 (6) ログ出力をテストする 関数 テスト testfixtures テストコード 以上 環境 以下のような環境でやってます. $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G19009 $ pyt…

shUnit2 で awscli を使ったシェルスクリプトのユニットテストを Travis CI と AWS CodeBuild で実行した際のメモ

tl;dr と言っても, まずはコードを御覧ください TravisCI で実行する .travis.yml 工夫したところ (イケてないかもしれないところ) Python 環境でやった awscli を利用する準備 実行結果 AWS CodeBuild で実行する AWS CodeBuild x GitHub buildspec.yml 工…

shUnit2 で awscli を使ったシェルスクリプトのユニットテストを書くまでの諸々

tl;dr shUnit2 shUnit2 とは shUnit2 で Hello World shUnit2 諸々 詳細については... Assert assertEquals assertNotEquals Setup/Teardown oneTimeSetup oneTimeTearDown ちなみに, setUp と tearDown awscli を使ったシェルスクリプトでテストする さて, …

2018 年 04 月 27 日(金)

ジョギング 日課 PyFukuoka #4 今日のるびぃ ~ Ruby技術者認定試験【Gold】模擬問題を解いてみる (re: 6) ~ Q16. Object#freeze Q17. Proc Q18. ライブラリ ジョギング 香椎浜 x 2 周 テンポ良く走れたと思う 両足の太もも裏に張りを感じる 日課 お休み PyFu…

内閣府が提供する祝日・休日 csv データをよしなに JSON フォーマットに変換して Amazon S3 に保存する Python スクリプトを書いてみたのと, そこで得たイイ感じでテストを書く, テストを回す為の知見を幾つか

tl;dr 作ったもの 知見 requests.get() を mock で置き換える S3 への put_object を moto で置き換える invoke コマンド Travis CI を使って, 複数の Python バージョンでテスト出来るようにする 以上 tl;dr inokara.hateblo.jp 前回の記事の続きというか, …

奥さんがフェイスエステしている間に日本の祝日や休日を JSON で返す Web サービスを API Gateway と Amazon S3 そして Python で作ってみました

追記:後日談を書きました inokara.hateblo.jp tl;dr 日本の祝日や休日を JSON で返してくれる Holidays JP API というサービスがありますよね. holidays-jp.github.io すごく便利で有難いと思います. 今回は, ちょっとした時間が出来たので Holidays JP API…

直近で Python の unittest で試行錯誤していて得られた知見の幾つか (2)

環境 知見 (4) テストの実行順序を制御する (ということ自体が正しいのか否かについても) 疑問 なんで? 少し深追い も少しだけ深く で... と, まあ 以上 環境 引き続き, 以下のような環境でやってます. $ sw_vers ProductName: Mac OS X ProductVersion: 10…

直近で Python の unittest で試行錯誤していて得られた知見の幾つか (1)

環境 知見 (1) ランダムな情報を返す関数をテストする 関数 テスト 知見 (2) とある日付の前月を返す関数をテストする 関数 テスト 知見 (3) テスト結果を XML 形式で出力する メモ 以上 環境 以下のような環境でやってます. $ sw_vers ProductName: Mac OS …

Jenkins のマスターとスレーブを Docker コンテナで起動して Python の unittest を pyenv 環境で動かすまでのメモ

前提 Jenkins を動かす環境 Python の unittest Jenkins のコンテナの起動と初期設定 起動 初期設定 プロジェクトの設定 スレーブ環境の準備 スレーブ環境の前提 スレーブの追加 プロジェクトでスレーブを利用するように設定 ビルド 以上 前提 Jenkins を動…

Python の unittest で任意の関数 "だけ" テストしたい

以下のような... 普通にテストを実行する場合 では, 任意の関数だけテストしたい場合 逆に任意の関数だけスキップしたい場合にどうするのかというと... その他の unittest 起動方法 指定した複数の関数だけテストしたい 指定したパスのテストモジュール (テ…

手順書に「xxxxx と出力されることを目視で確認する」と書くの止めたい

はじめに そこで, assert 文を利用することにした 利用例 利用例の環境 設定ファイル コマンドの出力結果 ということで はじめに 手順書を書く時に「xxx の出力結果が xxx であることを目視で確認する.」と書いていて, 自分で自分に以下のようなツッコミを入…

MySQL のクエリ結果を JSON で取得したい Python 編 (2)

前回 実装メモ テスト pycodestyle invoke 以上 前回 inokara.hateblo.jp この記事で作ったサンプルとかを Github に上げた. github.com 詳細は前回の記事とか見る. 実装メモ テスト ローカルホストに MySQL が動いていることが前提だけど, テスト用のデータ…

MySQL のクエリ結果を JSON で取得したい Python 編

tl;dr こんなテーブルがあったとする 実装例 環境 1 件取得する 全件を取得する 指定した条件のレコードを取得 以上 tl;dr SELECT * FROM table WHERE id = N の結果を JSON で取得したい. ただ, それだけ. こんなテーブルがあったとする mysql> SELECT * FR…

Python でお気軽にプログレスバー

この記事は... (what)何をしたかったのか (why)なぜやりたかったのか やったこと tqdm Hello tqdm コマンドラインでも使える 以上 この記事は... qiita.com 参加者の少ない, 初老丸 Advent Calendar 2017 14 日目の記事です. (what)何をしたかったのか Pytho…

Python でコマンドラインからパスワード入力させるの際には画面にパスワード文字列は出力させたくないゾ

この記事は... 何がしたかったのか どうしたか 以上 この記事は... qiita.com 参加者の少ない, 初老丸 Advent Calendar 2017 11 日目の記事です. 何がしたかったのか 以下のように Python スクリプトを実行して, コマンドラインからパスワードの入力を受け付…

mailcatcher でメール送信のデバッグ作業が 256 倍捗った(個人比)のでメモ

この記事は... tl;dr mailcatcher の準備 mailcatcher とは Docker イメージで展開する メールを送るサンプル スクリプト本体 設定ファイル 実行サンプル mailcatcher で確認 以上 この記事は... qiita.com 体育会系エンジニア Advent Calendar 2017 10 日目…

Python スクリプトの標準出力をパイプでつなぐ時に気をつけたいこと

これは tl;dr あれっ?? Python のヘルプを見ると... One more thing 以上 これは qiita.com 初老丸 Advent Calendar 2017 9 日目の記事になる予定です. tl;dr Python スクリプト内で以下のように Print() を利用して 'foo' を標準出力させつつ, tee コマン…

dateutil の parser よりも速く日付を解析する試み

これは tl;dr やりたかったこと dateutil の parser で実装した場合 オレオレパーサーを実装してみる なんでやろ そもそも関数の呼び出す数が違った dateutil のソースコードを見てみる 以上 dateutil の parser は遅いのか ということで これは qiita.com …

DynamoDB の Scan でテーブルのデータを漏れなく取得する為のメモ

これは これはやらかしの記録である 結果セットに 1MB 制限がある 実装例 環境 ダメなやつ 1MB 以上の結果を取得するやつ 1MB 以上の結果を取得するやつ(2) ということで 教訓 自分を殴りたい これは qiita.com 初老丸 Advent Calendar 2017 6 日目の記事に…

言語別 S3 バケットに任意のキーが存在しているかを確認するコード片

よろしくお願いしまっす! やりたいこと 諸々 bash Ruby Python Go PHP 以上 よろしくお願いしまっす! この記事は... qiita.com 初老丸 Advent Calendar 2017 1 日目の記事になる予定です。 やりたいこと 任意の S3 バケット内に任意のキーが存在しているか…

テストドンブリ(ドリブン)Python FizzBuzz

Python Boot Camp に行ってきた テストドリブン FizzBuzz ドキュメント 環境 FizzBuzz とは 最初のテスト fizzbuzz 関数の実装(1) テスト(2) fizzbuzz 関数の実装(2) テスト(3) fizzbuzz 関数の実装(3) テスト(4) 以上 Python Boot Camp に行っ…

CodeBuild で実行したビルドの結果を Slack に通知するヤツ(PHPUnit を実行した場合にはテスト結果もブラウザで確認出来るようにしちゃる)

CodeBuild にお願いしっぱなしでは 使い方 ファイル デプロイ こんな感じ 処理の流れ(1) 処理の流れ(2) 通知例 ビルド開始 成功 失敗 ハマった点こととか PreSigned URL 結果 URL の処理をどこでやるか ということで CodeBuild にお願いしっぱなしでは …

俺は AWS について何も解っていなかった 〜 ec2 describe instances の Filters オプションでタグによる検索をしたい場合 〜

やりたかった事 解っていなかった事 知ったかぶりをして ところが、ドキュメントを読むと… こんな感じ ということで このメモを書くきっかけ Python のリスト内包表記 やりたかった事 EC2 タグ Key = foo と Value = true が付与されているインスタンス ID …

小ネタ道場一本勝負 〜 date コマンドの出力を ISO 8601 フォーマットにしたい 〜

date コマンドで Mac だと Linux だと Ruby だと Python だと 以上 date コマンドで ISO 8601 フォーマットで出力したい時がたまにあるのでメモっておく。 https://ja.wikipedia.org/wiki/ISO_8601 Mac だと date +%FT%T%z 実行。 $ date +%FT%T%z 2017-06-1…

ワンラインで Unixtime から Datetime に変換したいくさ

はじめに Ruby だと Python だと bash だと 以上 はじめに ぽーんと unixtime を渡されても、これはいったい何時何分なんやって思うことがある。 そんな時にコマンドラインでちゃちゃっと変換出来たらカッコイイかな…ということで… Ruby だと $ ruby -v ruby…

moto で boto3 を使ったツールやライブラリのテストをするぞ(moto チュートリアル 壱)

どうも、モト春樹です moto example リポジトリ チュートリアル環境 ec2.py tests/ec2_test.py setup.py テスト coverage coverage run coverage report coverage html Stand-alone Server Mode Python 以外の言語ライブラリからも利用可能 Stand-alone Serv…

Datadog APM の Python 用クライアント dd-trace-py をざっくりチュートリアルする 〜 botocore 編〜

引き続き ソースコードやドキュメントの端々に botocore とは ということで ddtrace-run x botocore Patch ということで 引き続き github.com を弄っています。 ソースコードやドキュメントの端々に ドキュメント には、以下のように… DATADOG_PATCH_MODULES…

Datadog APM の Python 用クライアント dd-trace-py をざっくりチュートリアルする 〜 ddtrace-run と Patch 編〜

前回は 今回は 試す環境 dd-trace-py 導入 実装 コマンドラインツール 〜 ddtrace-run 〜 ddtrace-run ddtrace-run x sqlite3 Patch スクリプトの修正 Pin で任意のメタデータを付与 ということで 前回は Sinatra でざっくりと Datadog APM サービスを使って…

stream2es で大量データをサクッと Amazon Elasticsearch Service に放り込む 〜 もう bulk API を操作しなくても良いかもしれない 〜

検証の為に 放り込む 放り込む前に csv から json データにする インデックスの作成 ここで真打ち stream2es の登場 ひとまず 以上 stream2es を使えば stream2es ヘルプ 検証の為に 大量データを Amazon Elasticsearch Service に放り込みたいです。 データ…