title: magic mock set value for attribute only get the first value
body: <p>I am using pytest3.7 to test. I would like to mock <code>res</code>,which is return value from <code>get_res_function</code>. <code>res.property1[key1][keyN].property2</code> is the value I want to mock. Here is my test:</p>
  
  <pre><code>@mock.patch("mypkg.get_res_function")
  def test_function(mock_res):
      returner = mock.MagicMock()
      returner.property1["key1"]["key2"].property2 = "11111"
      returner.property1["key1"]["key3"].property2 = "22222"
      mock_res.return_value = returner
  </code></pre>
  
  <p>However, both values i want to mock only use the first line mock's value, which means <code>mock_res.property1["key1"]["key2"].property2 = "11111", mock_res_property1["key1"]["key3"].property2 = "11111"</code>
  and if reverse it in test code, meaning put "22222" before "11111", </p>
  
  <pre><code>returner.property1["key1"]["key2"].property2 = "22222"
          returner.property1["key1"]["key3"].property2 = "11111"
  </code></pre>
  
  <p>then all the results is "22222", what is wrong? </p>