SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Mock	
  と	
  patch	

 ふるかわとおる
お前、誰よ?	
•  ふるかわとおる	
  
  –  @torufurukawa	
  
  –  bucho	
  と呼ばれています	
  
•  株式会社バスキュール	
  
  –  生放送テレビ番組と連動するサービス	
  
  –  エンジニア足りません	
  
ユニットテスト	
def	
  test():	
  
	
  	
  result	
  =	
  foo('wozozo')	
  
	
  	
  assert	
  result	
  ==	
  'unko'	
  
依存先…	
def	
  foo(name):	
  
	
  	
  f	
  =	
  urlopen('http://%s.com/'	
  %	
  name)	
  
	
  	
  raw	
  =	
  f.read()	
  
	
  	
  d	
  =	
  json.loads(raw)	
   不確定	
	
  	
  return	
  d['data']	
                                  確定的な	
  
                                 結果に依存
ユニットテストしにくい例	
•  戻り値が不確定	
  
  –  乱数	
  
  –  時刻	
  
•  セットアップがだるい	
  
  –  データベース	
  
  –  Web	
  API	
  
テスト対象の外側を入出力として扱う	

                               ここも入出力	
よびだし	
                                                 HTTP	
  req	
         def	
  foo(name):	
  
         	
  	
  raw	
  =	
  urlopen('http://…')	
  
         	
  	
  d	
  =	
  json.loads(raw)	
  
         	
  	
  return	
  d['data']	

戻り値	
                                                  HTTP	
  resp
そこで	
  mock	
  モジュール ですよ	
•  Python	
  3.2	
  以前 PyPI	
  
   –  easy_install,	
  pip,	
  etc.	
  


•  Python	
  3.3	
  標準ライブラリ	
  
   –  uniDest.mock	
  
1:	
  依存先オブジェクトを入れ替える	


テスト対象	
   urlopen	




テスト対象	
    mock
with	
  patch(...)	
  で入れ替える	
from	
  unittest.mock	
  import	
  patch	
  
def	
  test():	
  
	
  	
  with	
  patch('urllib.request.urlopen')	
  
	
  	
  as	
  m:	
  
	
  	
  	
  	
  result	
  =	
  foo('wozozo')	
  
Mock	
  オブジェクトと入れ替え	
>>>	
  with	
  patch('urllib.request.urlopen')	
  
	
  	
  	
  	
  as	
  m:	
  
...	
  	
  	
  from	
  urllib.request	
  import	
  urlopen	
  
...	
  	
  	
  urlopen	
  is	
  m	
  
...	
  	
  
True
Mock	
  オブジェクトはアクセスし放題	
>>>	
  m	
  
<MagicMock	
  name='urlopen'	
  id='1'>	
  
>>>	
  m.read()	
  
<MagicMock	
  name='urlopen.read()'	
  id='2'>	
  
>>>	
  m.hoge	
  
<MagicMock	
  name='urlopen.hoge'	
  id='3'>	
  
@patch	
  で入れ替える	
@patch('urllib.request.urlopen')	
  
def	
  test(m):	
  
	
  	
  result	
  =	
  foo('wozozo')	
  
setUp	
  と tearDown	
  で	
  patch	
class	
  MyTest(TestCase):	
  
	
  	
  def	
  setUp(self):	
  
	
  	
  	
  	
  self.patcher	
  =	
  patch('...')	
  
	
  	
  	
  	
  self.m	
  =	
  patcher.start()	
  
	
  
	
  	
  def	
  tearDown(self):	
  
	
  	
  	
  	
  self.patcher.stop()
2:	
  依存先の呼び出し履歴を確認	



テスト	
   テスト対象	
   mock
call_count	
  で呼び出し回数を確認	
@patch('urllib.request.urlopen')	
  
def	
  test(m):	
  
	
  	
  result	
  =	
  foo('wozozo')	
  
	
  	
  assert	
  m.call_count	
  ==	
  1	
  
call_args	
  で引数を確認	
@patch('urllib.request.urlopen')	
  
def	
  test(m):	
  
	
  	
  result	
  =	
  foo('wozozo')	
  
	
  	
  assert	
  m.call_count	
  ==	
  1	
  
	
  	
  assert	
  (m.call_args	
  ==	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (('http://...',),	
  {}))	
  
*args	
  と	
  **kw	
  が返ってくる	
m(a,	
  b,	
  x=1)	
  
↓	
  
m.call_args	
  ==	
  ((a,	
  b),	
  {'x':	
  1})
3:	
  依存先の挙動を定義する	



テスト	
   テスト対象	
   mock
return_value	
  で戻り値定義	
>>>	
  m.return_value	
  =	
  999	
  
>>>	
  m()	
  
999	
  
urlopen().read()	
def	
  foo(name):	
  
	
  	
  f	
  =	
  urlopen('http://%s.com/'	
  %	
  name)	
  
	
  	
  raw	
  =	
  f.read()	
  
	
  	
  d	
  =	
  json.loads(raw)	
  
	
  	
  return	
  d['data']
return_value	
  で戻り値定義	
>>>	
  m.return_value.meth.return_value	
  =	
  1	
  
>>>	
  m().meth()	
  
1	
  
@patch('urllib.request.urlopen')	
  
def	
  test_foo(m):	
  
	
  	
  m.return_value.read.return_value	
  =	
  '…'	
  
	
  	
  result	
  =	
  foo('wozozo')	
  
	
  	
  assert	
  m.call_count	
  ==	
  1	
  
	
  	
  assert	
  (m.call_args	
  ==	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (('http://…',),	
  {}))	
  
	
  	
  assert	
  result	
  ==	
  '…'	
  
複雑な戻り値は side_effect	
>>>	
  def	
  f(x,	
  y):	
  	
  
...	
  	
  	
  return	
  x	
  +	
  y	
  
...	
  	
  
>>>	
  m.side_effect	
  =	
  f	
  
>>>	
  m(1,	
  2)	
  
3
side_effect	
  に例外を指定	
>>>	
  m.side_effect	
  =	
  TypeError	
  
>>>	
  m()	
  
Traceback	
  (most	
  recent	
  call	
  last):	
  
...	
  
TypeError
mock	
  でユニットテストしやすくなる	



 テスト	
   テスト対象	
   mock
より詳しい話	
•  公式ドキュメント	
  
•  voluntas	
  「requests	
  と	
  mock	
  を使ってみる」	
  
     hDp://voluntas.hatenablog.com/entry/20111124/1322069748	
  
•  ぁっぉ 「mock	
  はこう使え」	
  
     hDp://d.hatena.ne.jp/atsuoishimoto/20120310/1331311730	
  

Mais conteúdo relacionado

Mais procurados

何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作るTaketo Sano
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14Ryo Suzuki
 
計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~Norishige Fukushima
 
Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός Evari...
Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός  Evari...Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός  Evari...
Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός Evari...jpapoglou
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門Hideyuki Tanaka
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装したt-sin
 
NVMCT #1 ~今さら聞けないSSDの基本~
NVMCT #1 ~今さら聞けないSSDの基本~NVMCT #1 ~今さら聞けないSSDの基本~
NVMCT #1 ~今さら聞けないSSDの基本~Fixstars Corporation
 
クソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみたクソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみたMitsuru Kariya
 
カード収集ゲームにおけるPlayFabの使い方
カード収集ゲームにおけるPlayFabの使い方カード収集ゲームにおけるPlayFabの使い方
カード収集ゲームにおけるPlayFabの使い方Daisuke Masubuchi
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてt-sin
 
素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe 素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe Junpei Tsuji
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門VirtualTech Japan Inc.
 
1070: CUDA プログラミング入門
1070: CUDA プログラミング入門1070: CUDA プログラミング入門
1070: CUDA プログラミング入門NVIDIA Japan
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenMITSUNARI Shigeo
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話bleis tift
 
楽しいクォータニオンの世界 田所 第二回Rogyゼミ
楽しいクォータニオンの世界 田所 第二回Rogyゼミ楽しいクォータニオンの世界 田所 第二回Rogyゼミ
楽しいクォータニオンの世界 田所 第二回Rogyゼミrogy01
 

Mais procurados (20)

何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作る
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~
 
Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός Evari...
Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός  Evari...Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός  Evari...
Tα τρία άλυτα προβλήματα της αρχαιότητας και ο "αναρχικός" Μαθηματικός Evari...
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 
NVMCT #1 ~今さら聞けないSSDの基本~
NVMCT #1 ~今さら聞けないSSDの基本~NVMCT #1 ~今さら聞けないSSDの基本~
NVMCT #1 ~今さら聞けないSSDの基本~
 
クソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみたクソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみた
 
最速C# 7.x
最速C# 7.x最速C# 7.x
最速C# 7.x
 
カード収集ゲームにおけるPlayFabの使い方
カード収集ゲームにおけるPlayFabの使い方カード収集ゲームにおけるPlayFabの使い方
カード収集ゲームにおけるPlayFabの使い方
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
 
Final field semantics
Final field semanticsFinal field semantics
Final field semantics
 
素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe 素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
PostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もうPostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もう
 
1070: CUDA プログラミング入門
1070: CUDA プログラミング入門1070: CUDA プログラミング入門
1070: CUDA プログラミング入門
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話
 
楽しいクォータニオンの世界 田所 第二回Rogyゼミ
楽しいクォータニオンの世界 田所 第二回Rogyゼミ楽しいクォータニオンの世界 田所 第二回Rogyゼミ
楽しいクォータニオンの世界 田所 第二回Rogyゼミ
 

Semelhante a Mock and patch

Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
Unit test in android
Unit test in androidUnit test in android
Unit test in androidTatsuya Maki
 
Kompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptx
Kompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptxKompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptx
Kompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptxManamiMaeda
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter IntegrationKazuki Nakajima
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPIDaisuke Igarashi
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftTomohiro Kumagai
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2Akio Ishida
 
ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】株式会社ランチェスター
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2Tomohiro Namba
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.ContextAkira Takahashi
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~leverages_event
 
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)Fujio Kojima
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミングlestrrat
 

Semelhante a Mock and patch (20)

Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
Unit test in android
Unit test in androidUnit test in android
Unit test in android
 
Kompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptx
Kompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptxKompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptx
Kompira開発者が教えるジョブフローTips7選_Kompass発表資料20240306.pptx
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
 
Subprocess no susume
Subprocess no susumeSubprocess no susume
Subprocess no susume
 
Pyramid入門
Pyramid入門Pyramid入門
Pyramid入門
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
Ruby test double
Ruby test doubleRuby test double
Ruby test double
 
Applicative functor
Applicative functorApplicative functor
Applicative functor
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2
 
ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.Context
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
 
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
 
Task
TaskTask
Task
 

Mais de Toru Furukawa

Twitter 広告と API を組み合わせたインタラクティブなキャンペーン
 Twitter 広告と API を組み合わせたインタラクティブなキャンペーン Twitter 広告と API を組み合わせたインタラクティブなキャンペーン
Twitter 広告と API を組み合わせたインタラクティブなキャンペーンToru Furukawa
 
My client wanted their apps synced, and I made it with Go
My client wanted their apps synced, and I made it with GoMy client wanted their apps synced, and I made it with Go
My client wanted their apps synced, and I made it with GoToru Furukawa
 
Introduction to Python 3.4 as of beta 1
Introduction to Python 3.4 as of beta 1Introduction to Python 3.4 as of beta 1
Introduction to Python 3.4 as of beta 1Toru Furukawa
 
Test Failed, Then...
Test Failed, Then...Test Failed, Then...
Test Failed, Then...Toru Furukawa
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)Toru Furukawa
 
Trying Continuous Delivery - pyconjp 2012
Trying Continuous Delivery - pyconjp 2012Trying Continuous Delivery - pyconjp 2012
Trying Continuous Delivery - pyconjp 2012Toru Furukawa
 
Python 3.3 チラ見
Python 3.3 チラ見Python 3.3 チラ見
Python 3.3 チラ見Toru Furukawa
 
Python32 pyhackathon-201011
Python32 pyhackathon-201011Python32 pyhackathon-201011
Python32 pyhackathon-201011Toru Furukawa
 

Mais de Toru Furukawa (11)

Twitter 広告と API を組み合わせたインタラクティブなキャンペーン
 Twitter 広告と API を組み合わせたインタラクティブなキャンペーン Twitter 広告と API を組み合わせたインタラクティブなキャンペーン
Twitter 広告と API を組み合わせたインタラクティブなキャンペーン
 
My client wanted their apps synced, and I made it with Go
My client wanted their apps synced, and I made it with GoMy client wanted their apps synced, and I made it with Go
My client wanted their apps synced, and I made it with Go
 
Introduction to Python 3.4 as of beta 1
Introduction to Python 3.4 as of beta 1Introduction to Python 3.4 as of beta 1
Introduction to Python 3.4 as of beta 1
 
Test Failed, Then...
Test Failed, Then...Test Failed, Then...
Test Failed, Then...
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)
 
Trying Continuous Delivery - pyconjp 2012
Trying Continuous Delivery - pyconjp 2012Trying Continuous Delivery - pyconjp 2012
Trying Continuous Delivery - pyconjp 2012
 
Python 3.3 チラ見
Python 3.3 チラ見Python 3.3 チラ見
Python 3.3 チラ見
 
Python32 pyhackathon-201011
Python32 pyhackathon-201011Python32 pyhackathon-201011
Python32 pyhackathon-201011
 
Django
Django Django
Django
 
Python 2.7
Python 2.7Python 2.7
Python 2.7
 
BPStudy#34 導入
BPStudy#34 導入BPStudy#34 導入
BPStudy#34 導入
 

Último

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Último (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Mock and patch