Python
あらすじ ある日こんな事を言われました。 「Python 2.7 で動いてるプログラムがあるんだけど DB に URL エンコードされた文字列が入っているからデコードしてちょ」 やってみる 以下の参考にして unicode を一度 str に変換して urllib.unquote に渡します…
もう何回か同じ事を繰り返しているのでメモ redis.py で Set を記録する場合にこんな事をしてしまう >>> import redis >>> conn = redis.Redis() >>> items = set([1, 2, 3]) >>> conn.sadd('key', items) 1 >>> conn.smembers('key') set(['set([1, 2, 3])'…
あらすじ 以下のコマンドがこける % python ./manage.py test --settings=xxxxxxx.settings.test.local プロジェクト内でこうやってインストールしているモジュールがテスト通っていないらしい。 pip install ./extra_eggs xxxxxxxxxx どうする? 以下を参考…
Pytestの備忘録 py.test の書き方について重要なところだけまとめてみました。 大体以下のことがつかめればOKだと思います。 autouse と pytest.ini の関係 scope の使い方 request.addfinalizer autouse tests/test_my.py を用意 # -*- coding: utf-8 -*- i…
こんな感じ import subprocess cmd1 = ('ls', '/tmp') cmd2 = ('head') p1 = subprocess.Popen(cmd1, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p2 = subprocess.Popen(cmd2, stdin=p1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE) pri…
あらすじ test.py(xdist)で並列テストを実行しているプロジェクトが存在する。 現在、関数毎にテスト用の redis-server を起動して、都度廃棄している。 redis-server を起動する処理をモジュール単位に変更し、テスト関数が始まる度に flushall() にする処…
以下の挙動を知らなくて迷宮入りするところだったので共有します。 Point1: time.sleep time.sleep しておくと returncode 0 を取得できる # -*- coding: utf-8 -*- import time import subprocess cmd = ('ls', '/tmp') p = subprocess.Popen(cmd, stdout=s…
Python で子プロセスにコマンドを実行させて、それが失敗した場合を検出したい。 exit 1 的なアレ。 調べた結果以下のようにすれば良い模様。 import time import subprocess cmd = ('cat', '/hogehogehoge') p1 = subprocess.Popen(cmd, stdout=subprocess.…
あらすじ ログ集計テーブルのテストケースを作っていた時の話ですがテーブルに入っているデータを各テストケース毎に作成したい。 なんですけどテストケースが増えるとどのケースでどのようなデータが用意されているのかが分かりづらいのでちょっと工夫して…
あらすじ 以下のコードを実行すると # -*- coding: utf-8 -*- import logging import traceback try: raise Exception('!!') except Exception as e: logging.error(e) こういう感じになります。 :!python % ERROR:root:!! traceback が欲しい import traceb…
あらすじ あるディレクトリを監視してファイルに変更が加えられたら何かしらの処理を非同期で実行する時にテストどうする 状況説明 version は下記バージョン % python --version Python 2.7.3 サンプルコード import pyinotify wm = pyinotify.WatchManager…
暗黙の False - あいつの日誌β 以前このような記事を書いたのですが、requests というモジュールがちょっと怖いなと感じる挙動をしているので記事に書いてみます。 # -*- coding: utf-8 -*- import requests def test(response): if response: return 'this …
あらすじ 基本 json で返す web api を csv 形式で出力することになりました。 フロント側で format を csv に変換する仕組みを導入したとろこ Windows の Excel で不具合が発生します。 ということで CSV という拡張子の TSV を UTF-16LE で返すエンドポイ…
こんなのを [ { 'ika': 100, 'uni': 200, 'toro': 300 }, { 'ika': 200, 'uni': 300, 'toro': 400 } ] こんなのにする [ [ 100, 200, 300], [ 200, 300, 400] ] 順番は ika, uni, toro にする。そしてこの多次元配列を csv モジュールに任せる作業をしたいで…
Failed py.test using httpretty contain redis client Story I am faced with a problem that test codes failed. for example external web api should return mock data when we testing. たとえば課金API のレスポンスなどテスト時においては HTTP Reque…
あらすじ Python では Javascript で言う所の オブジェクトのプロパティの値を get() でも取得できると思っていました。 そんなわけでこんなコードを書いてみた。 user = {'name': 'okamuuu'} print user.get('name') レビューで指摘されました name は必ず…
unsersocre.js でいうところの _.uniq 的なアレをしたい _.uniq([1, 2, 1, 3, 1, 4]); // [1, 2, 3, 4] python だとこんな感じらしい sorted(set([1, 2, 1, 3, 1, 4])) # [1, 2, 3, 4] set すると順番を保持しないので厳密には違う処理ですがこれでやりたい…
なんかすごいかっこいいタイトルになりましたが Python だと空の配列は False を返すらしいので以下のように書けます if not users: print 'not found users' そんだけ https://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=True/False…
やり方はいろいろあるけれどもとりあえず conbime するやり方を試みた >>> import datetime >>> current_date = datetime.date(2014, 12, 3) >>> current_datetime = datetime.datetime.combine( ... current_date, ... datetime.time() ... ) >>> print(cur…
enviroments % uname -v Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 % python --version Python 3.4.2 % pip show Flask --- Name: Flask Version: 0.10.1 Location: /Users/okamuuu/local/python-…
あらすじ ひょんなところから蛇使いになりそうなので Python の開発環境をセットアップする 経歴 昔 virtualenv を試したところ、「俺、Python 無理ッ」ってなった以来 Python 使っていない 最近の Python はどうやって使うか? direnv + xbuild かな? やっ…