def METHOD_NAME(user: UserClient):
    """Tests submitting two rates from Workbench,
    ensuring that the tests / benchmarks...
    from the first rate do not contaminate the second rate.
    This ensures that rates only takes all the correct actions
    and components rates in case device have new tests/benchmarks.
    """
    pc = Desktop(chassis=ComputerChassis.Tower)
    hdd = HardDrive(size=476940)
    hdd.actions_one.add(BenchmarkDataStorage(read_speed=126, write_speed=29.8))
    cpu = Processor(cores=2, speed=3.4)
    cpu.actions_one.add(BenchmarkProcessor(rate=27136.44))
    pc.components = {
        hdd,
        RamModule(size=4096, speed=1600),
        RamModule(size=2048, speed=1600),
        cpu
    }
    # Add test visual with functionality and appearance range
    VisualTest(appearance_range=AppearanceRange.A,
               functionality_range=FunctionalityRange.A,
               device=pc)
    rate1, price1 = RateComputer.compute(pc)
    # asserts rate1 ...
    assert rate1.data_storage == 4.02
    assert rate1.processor == 3.95
    assert rate1.ram == 3.8
    assert rate1.appearance is None
    assert rate1.functionality is None
    assert rate1.rating == 3.92
    assert price1.price == Decimal('78.4001')
    cpu.actions_one.add(BenchmarkProcessor(rate=16069.44))
    ssd = SolidStateDrive(size=476940)
    ssd.actions_one.add(BenchmarkDataStorage(read_speed=222, write_speed=111))
    pc.components |= {
        ssd,
        RamModule(size=2048, speed=1067),
        RamModule(size=2048, speed=1067),
    }
    # Add test visual with functionality and appearance range
    VisualTest(appearance_range=AppearanceRange.B,
               functionality_range=FunctionalityRange.B,
               device=pc)
    rate2, price2 = RateComputer.compute(pc)
    assert rate2.data_storage == 4.3
    assert rate2.processor == 3.78
    assert rate2.ram == 3.95
    assert rate2.appearance is None
    assert rate2.functionality is None
    assert rate2.rating == 3.93
    assert price2.price == Decimal('78.6001')