)]}'
{"vif_plug_ovs/tests/unit/test_linux_net.py":[{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"ea49a5636b3a848b3f887aaeaf3f65252d7bd4b0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    @mock.patch.object(os.path, \u0027exists\u0027, return_value\u003dTrue)"},{"line_number":83,"context_line":"    @mock.patch.object(builtins, \u0027open\u0027)"},{"line_number":84,"context_line":"    def test__arp_filtering(self, mock_open, *args):"},{"line_number":85,"context_line":"        mock_open.side_effect \u003d mock.mock_open(read_data\u003dmock.Mock())"},{"line_number":86,"context_line":"        linux_net._arp_filtering(\"br0\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        mock_open.assert_has_calls(["}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_51495ab4","side":"PARENT","line":85,"range":{"start_line":85,"start_character":32,"end_line":85,"end_character":69},"updated":"2019-06-13 08:34:49.000000000","message":"Note to self: mock_open is described in https://docs.python.org/3/library/unittest.mock.html#mock-open\n\nSpecifically, note how read_data\u0027s handling has changed between Python versions. It\u0027s possible that earlier versions of Python did not validate read_data\u0027s type.","commit_id":"983bfdee5024afc9fb3e7979b1219a58669bd401"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7e2db9f705f99835719c1c89029cae3c676628eb","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    @mock.patch.object(os.path, \u0027exists\u0027, return_value\u003dTrue)"},{"line_number":83,"context_line":"    @mock.patch.object(builtins, \u0027open\u0027)"},{"line_number":84,"context_line":"    def test__arp_filtering(self, mock_open, *args):"},{"line_number":85,"context_line":"        mock_open.side_effect \u003d mock.mock_open(read_data\u003dmock.Mock())"},{"line_number":86,"context_line":"        linux_net._arp_filtering(\"br0\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        mock_open.assert_has_calls(["}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_c047b276","side":"PARENT","line":85,"range":{"start_line":85,"start_character":32,"end_line":85,"end_character":69},"in_reply_to":"9fb8cfa7_51495ab4","updated":"2019-06-13 13:38:37.000000000","message":"You are right, there is no need to pass or mock the data read by \"mock_open\".","commit_id":"983bfdee5024afc9fb3e7979b1219a58669bd401"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"ea49a5636b3a848b3f887aaeaf3f65252d7bd4b0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        mock_open.side_effect \u003d mock.mock_open(read_data\u003dmock.Mock())"},{"line_number":86,"context_line":"        linux_net._arp_filtering(\"br0\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        mock_open.assert_has_calls(["},{"line_number":89,"context_line":"            mock.call(\u0027/proc/sys/net/ipv4/conf/br0/arp_ignore\u0027, \u0027w\u0027),"},{"line_number":90,"context_line":"            mock.call(\u0027/proc/sys/net/ipv4/conf/br0/arp_announce\u0027, \u0027w\u0027)])"},{"line_number":91,"context_line":"        mock_open.side_effect.return_value.write.assert_has_calls(["},{"line_number":92,"context_line":"            mock.call(\u00271\u0027),"},{"line_number":93,"context_line":"            mock.call(\u00272\u0027)])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @mock.patch.object(ip_lib, \"delete\")"},{"line_number":96,"context_line":"    @mock.patch.object(ip_lib, \"exists\", return_value\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_912272b8","side":"PARENT","line":93,"range":{"start_line":88,"start_character":8,"end_line":93,"end_character":28},"updated":"2019-06-13 08:34:49.000000000","message":"Note to self: this asserts that specific writes to the sysctl entries in proc occurred. read_data does not need to be set.","commit_id":"983bfdee5024afc9fb3e7979b1219a58669bd401"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b58103ad9d4acb7a54a5f20fd6b6e764c5888f0","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        mock_set_state.assert_called_once_with(\"br0\", \"up\")"},{"line_number":63,"context_line":"        mock_arp_filtering.assert_called_once_with(\"br0\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @mock.patch(\u0027six.moves.builtins.open\u0027)"},{"line_number":66,"context_line":"    @mock.patch(\"os.path.exists\")"},{"line_number":67,"context_line":"    def test__disable_ipv6(self, mock_exists, mock_open):"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_485477fe","line":65,"range":{"start_line":65,"start_character":4,"end_line":65,"end_character":42},"updated":"2019-06-11 13:22:33.000000000","message":"we probably shoudl be using this form below.\n\nbut i still dont have a clear understanding of what matt riedemann wanted to be changed about how we are mocking open currently","commit_id":"1eef2d8a583d251523b02f2fa8a80f946b75d5b1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7e2db9f705f99835719c1c89029cae3c676628eb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        mock_set_state.assert_called_once_with(\"br0\", \"up\")"},{"line_number":63,"context_line":"        mock_arp_filtering.assert_called_once_with(\"br0\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @mock.patch(\u0027six.moves.builtins.open\u0027)"},{"line_number":66,"context_line":"    @mock.patch(\"os.path.exists\")"},{"line_number":67,"context_line":"    def test__disable_ipv6(self, mock_exists, mock_open):"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_20aa4e18","line":65,"range":{"start_line":65,"start_character":4,"end_line":65,"end_character":42},"in_reply_to":"9fb8cfa7_485477fe","updated":"2019-06-13 13:38:37.000000000","message":"We should use @mock.patch.object(builtins, \u0027open\u0027)\n\nAs I commented in IRC, the way we are mocking open is similar to Nova. The builtin function \"open\" is replaces by mock.mock_open() [1]\n\n[1] https://github.com/openstack/nova/blob/61558f274842b149044a14bbe7537b9f278035fd/nova/test.py#L881-L882","commit_id":"1eef2d8a583d251523b02f2fa8a80f946b75d5b1"}]}
