def is_different(module, response):
    request = resource_to_request(module)
    response = response_to_hash(module, response)

    # Remove all output-only from response.
    response_vals = {}
    for k, v in response.items():
        if k in request:
            response_vals[k] = v

    request_vals = {}
    for k, v in request.items():
        if k in response:
            request_vals[k] = v

    return GcpRequest(request_vals) != GcpRequest(response_vals)
    def test_arrays_strings_with_difference(self):
        value1 = {
            'foo': [
                'baz',
                'bar',
            ]
        }

        value2 = {'foo': ['baz', 'hello']}
        difference = {
            'foo': [
                'bar',
            ]
        }
        request1 = GcpRequest(value1)
        request2 = GcpRequest(value2)
        self.assertNotEquals(request1, request2)
        self.assertEqual(request1.difference(request2), difference)
 def test_arrays_dicts_with_no_difference(self):
     value1 = {
         'foo': [{
             'test': 'value',
             'foo': 'bar'
         }, {
             'different': 'dict'
         }]
     }
     request = GcpRequest(value1)
     self.assertEqual(request, request)
 def test_nested_dictionaries_no_difference(self):
     value1 = {
         'foo': {
             'quiet': {
                 'tree': 'test'
             },
             'bar': 'baz'
         },
         'test': 'original'
     }
     request = GcpRequest(value1)
     self.assertEqual(request, request)
 def test_arrays_dicts_with_difference(self):
     value1 = {
         'foo': [{
             'test': 'value',
             'foo': 'bar'
         }, {
             'different': 'dict'
         }]
     }
     value2 = {
         'foo': [
             {
                 'test': 'value2',
                 'foo': 'bar2'
             },
         ]
     }
     difference = {'foo': [{'test': 'value', 'foo': 'bar'}]}
     request1 = GcpRequest(value1)
     request2 = GcpRequest(value2)
     self.assertNotEquals(request1, request2)
     self.assertEqual(request1.difference(request2), difference)
 def test_nested_dictionaries_with_difference(self):
     value1 = {
         'foo': {
             'quiet': {
                 'tree': 'test'
             },
             'bar': 'baz'
         },
         'test': 'original'
     }
     value2 = {
         'foo': {
             'quiet': {
                 'tree': 'baz'
             },
             'bar': 'hello'
         },
         'test': 'original'
     }
     difference = {'foo': {'quiet': {'tree': 'test'}, 'bar': 'baz'}}
     request1 = GcpRequest(value1)
     request2 = GcpRequest(value2)
     self.assertNotEquals(request1, request2)
     self.assertEqual(request1.difference(request2), difference)
 def test_simple_no_difference(self):
     value1 = {'foo': 'bar', 'test': 'original'}
     request = GcpRequest(value1)
     self.assertEqual(request, request)
 def test_arrays_strings_no_difference(self):
     value1 = {'foo': ['baz', 'bar']}
     request = GcpRequest(value1)
     self.assertEqual(request, request)