class_docstr: Test that the QNode correctly changes shot value, and
  remains differentiable.
class_docstr_tok: ["Test","that","the","QNode","correctly","changes","shot","value",",","and","remains","differentiable","."]
docstr: Test that changing shots works on execution
docstr_tok: ["Test","that","changing","shots","works","on","execution"]
code: def test_changing_shots(self, interface):
      """Test that changing shots works on execution"""
      a, b = jax.numpy.array([0.543, -0.654])
  
      @qnode(
          DefaultQubit(),
          diff_method=qml.gradients.param_shift,
          interface=interface,
      )
      def circuit(a, b):
          qml.RY(a, wires=0)
          qml.RX(b, wires=1)
          qml.CNOT(wires=[0, 1])
          return qml.sample(wires=(0, 1))
  
      # execute with device default shots (None)
      with pytest.raises(qml.DeviceError):
          circuit(a, b)
  
      # execute with shots=100
      res = circuit(a, b, shots=100)
      assert res.shape == (100, 2)
  
imports: from itertools import product
  import numpy
  import pytest
  import pennylane
  from pennylane import qnode
  from pennylane.devices import DefaultQubit
label_desc: Use image node_id 2 for calling the TestShotsIntegration obj's underlying member method code with example usage: obj.test_changing_shots(interface) and returns: qml