質問編集履歴

4

試したことを追記してみました

2018/04/09 02:23

投稿

nakamiri
nakamiri

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- ### 前提・実現したいこと
1
+ ## 前提・実現したいこと
2
2
 
3
3
 
4
4
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- ### 発生している問題・エラーメッセージ
19
+ ## 発生している問題・エラーメッセージ
20
20
 
21
21
 
22
22
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  def test_test(self):
80
80
 
81
- a = self.bigip_base
81
+ a = self.hoge
82
82
 
83
83
 
84
84
 
@@ -118,6 +118,10 @@
118
118
 
119
119
  self.pwd = conf.get('settings', 'pwd')
120
120
 
121
+ self.flag = conf.getboolean('settings', 'flag')
122
+
123
+ self.port = conf.getint('settings', 'port')
124
+
121
125
 
122
126
 
123
127
  def nanka_method(self):
@@ -130,7 +134,7 @@
130
134
 
131
135
 
132
136
 
133
- ### 試したこと
137
+ ## 試したこと
134
138
 
135
139
 
136
140
 
@@ -144,6 +148,116 @@
144
148
 
145
149
 
146
150
 
151
+ ### 試したこと1
152
+
153
+ `test_hoge.py` のコンストラクタ内で以下のようなコードでのMockへの値追加も試しましたが、変わらずでした
154
+
155
+ ```python
156
+
157
+ # test_hoge.py:__init__
158
+
159
+ ConfigParser.get = mock.MagicMock(side_effect=self._side_effect)
160
+
161
+ ConfigParser.getboolean.return_value = False
162
+
163
+ ConfigParser.getint.return_value = 5
164
+
165
+ ```
166
+
167
+
168
+
169
+ ### 試したこと2
170
+
171
+ 関数へのMockは以下のような形でやって上手く行っていました。
172
+
173
+ ```python
174
+
175
+ # test_hoge.py
176
+
177
+ from unittest import TestCase, mock
178
+
179
+ from libs.hoge import Hoge
180
+
181
+
182
+
183
+ def _side_effect(self, section, option):
184
+
185
+ return "{0}-{1}".format(section, option)
186
+
187
+
188
+
189
+ class TestHoge(TestCase):
190
+
191
+
192
+
193
+ @mock.patch('libs.hoge.ConfigParser.get', side_effect=_side_effect)
194
+
195
+ @mock.patch('libs.hoge.ConfigParser.getboolean', return_value=False)
196
+
197
+ @mock.patch('libs.hoge.ConfigParser.getint', return_value=5)
198
+
199
+ def test_test(self):
200
+
201
+ a = Hoge()
202
+
203
+
204
+
205
+ # 何かする
206
+
207
+ ```
208
+
209
+
210
+
211
+ ### 試したこと3
212
+
213
+ 関数へのMockですが、この形だと上手く入りませんでした
214
+
215
+ 初期化のタイミングが異なるとかなのでしょうか...?
216
+
217
+
218
+
219
+ ```python
220
+
221
+ # test_hoge.py
222
+
223
+ from unittest import TestCase, mock
224
+
225
+ from libs.hoge import Hoge
226
+
227
+
228
+
229
+ def _side_effect(self, section, option):
230
+
231
+ return "{0}-{1}".format(section, option)
232
+
233
+
234
+
235
+ class TestHoge(TestCase):
236
+
237
+
238
+
239
+ @mock.patch('libs.hoge.ConfigParser')
240
+
241
+ def test_test(self, parser):
242
+
243
+ parser.get = mock.MagicMock(side_effect=_side_effect)
244
+
245
+ conf_parser.getboolean.return_value = False
246
+
247
+ conf_parser.getin.return_value = 5
248
+
249
+
250
+
251
+ a = Hoge()
252
+
253
+
254
+
255
+ # 何かする
256
+
257
+ ```
258
+
259
+
260
+
147
261
  ### 補足情報(FW/ツールのバージョンなど)
148
262
 
149
263
 

3

OS追加しました

2018/04/09 02:23

投稿

nakamiri
nakamiri

スコア7

test CHANGED
File without changes
test CHANGED
@@ -151,3 +151,5 @@
151
151
  * PyCharm CE 2016.3
152
152
 
153
153
  * Python 3.6.5
154
+
155
+ * macOS Sierra 10.12.6

2

Python初心者なものでアイコン付けました

2018/04/06 13:53

投稿

nakamiri
nakamiri

スコア7

test CHANGED
File without changes
test CHANGED
File without changes

1

ソースコードにコメント追加しました

2018/04/06 13:51

投稿

nakamiri
nakamiri

スコア7

test CHANGED
File without changes
test CHANGED
@@ -104,6 +104,8 @@
104
104
 
105
105
  def __init__(self):
106
106
 
107
+ # このコードで実行するとMagicMockが↑で挙動を入れたものではない、新規のが入ってくるように見える
108
+
107
109
  conf = ConfigParser()
108
110
 
109
111
  conf.read(CONFIG_PATH)