def test_re_init(stc):
    hnd_reg = CHandleRegistry.Instance()
    sequencer = CStcSystem.Instance().GetObject('Sequencer')
    ctor = CScriptableCreator()

    # Create the command.  init() is called when the command is created
    cmd = ctor.Create(TPKG + '.CreateTrafficMixCommand', sequencer)

    # Mock get_this_cmd
    CreateTMix2Cmd.get_this_cmd = MagicMock(return_value=cmd)

    # Check that init() was invoked
    cmd_hnd_list = cmd.GetCollection('CommandList')
    assert len(cmd_hnd_list) == 1
    grp_cmd = hnd_reg.Find(cmd_hnd_list[0])
    assert grp_cmd.IsTypeOf(PKG + '.IterationGroupCommand')
    child_list = cmd.GetObjects('Command')
    assert len(child_list) == 1
    assert child_list[0].GetObjectHandle() == grp_cmd.GetObjectHandle()

    # Make some change in the contained sequence to simulate
    # an author modifying the contained sequence
    cmd_hnd_list = grp_cmd.GetCollection('CommandList')
    while_cmd = hnd_reg.Find(cmd_hnd_list[0])
    assert while_cmd.IsTypeOf('SequencerWhileCommand')

    cmd_hnd_list = while_cmd.GetCollection('CommandList')
    assert len(cmd_hnd_list) == 2

    iter_valid_cmd = ctor.Create(PKG + '.IteratorValidateCommand', while_cmd)
    cmd_hnd_list.append(iter_valid_cmd.GetObjectHandle())
    while_cmd.SetCollection('CommandList', cmd_hnd_list)

    # Call init() again.  This is invoked when the command is 'created'
    # again.  This appears to happen when a saved sequence with this
    # command in it is loaded.
    CreateTMix2Cmd.init()

    # Check that the original sequence did not change, that is,
    # the sequence wasn't pre-filled again.
    cmd_hnd_list = cmd.GetCollection('CommandList')
    assert len(cmd_hnd_list) == 1
    grp_cmd = hnd_reg.Find(cmd_hnd_list[0])
    assert grp_cmd.IsTypeOf(PKG + '.IterationGroupCommand')
    child_list = cmd.GetObjects('Command')
    assert len(child_list) == 1
    assert child_list[0].GetObjectHandle() == grp_cmd.GetObjectHandle()

    # Find the inserted command to prove that the original sequence
    # was not overwritten
    cmd_hnd_list = grp_cmd.GetCollection('CommandList')
    while_cmd = hnd_reg.Find(cmd_hnd_list[0])
    assert while_cmd.IsTypeOf('SequencerWhileCommand')
    cmd_hnd_list = while_cmd.GetCollection('CommandList')
    assert len(cmd_hnd_list) == 3

    conf_cmd = hnd_reg.Find(cmd_hnd_list[0])
    assert conf_cmd
    assert conf_cmd.IsTypeOf(PKG + '.IteratorConfigMixParamsCommand')

    load_cmd = hnd_reg.Find(cmd_hnd_list[1])
    assert load_cmd
    assert load_cmd.IsTypeOf(PKG + '.CreateTemplateConfigCommand')

    valid_cmd = hnd_reg.Find(cmd_hnd_list[2])
    assert valid_cmd
    assert valid_cmd.IsTypeOf(PKG + '.IteratorValidateCommand')