'An FSM doing convergence that discovers state unchanged from the last
state acknowledged by the control service does not re-send that state.'

def test_convergence_done_unchanged_notify(self):

    local_state = NodeState(hostname=u'192.0.2.123')
    configuration = Deployment(nodes=[to_node(local_state)])
    state = DeploymentState(nodes=[local_state])
    deployer = ControllableDeployer(local_state.hostname, [succeed(local_state), succeed(local_state.copy())], [no_action(), no_action()])
    client = self.make_amp_client([local_state])
    reactor = Clock()
    loop = build_convergence_loop_fsm(reactor, deployer)
    loop.receive(_ClientStatusUpdate(client=client, configuration=configuration, state=state))
    reactor.advance(_UNCONVERGED_DELAY)
    self.assertEqual((deployer.calculate_inputs, client.calls), ([(local_state, configuration, state), (local_state, configuration, state)], [(NodeStateCommand, dict(state_changes=(local_state,)))]))
