def METHOD_NAME(
    self,
    awscli_pod_session,
    mcg_obj,
    bucket_factory,
    first_bucketclass,
    second_bucketclass,
    test_directory_setup,
    s3bench,
    wait_time=120,
):
    """
    Test bidirectional bucket replication.
    """
    first_buckets = bucket_factory(
        amount=self.MCG_BUCKET,
        bucketclass=first_bucketclass,
        verify_health=False,
    )
    endpoints = list()
    second_buckets = list()
    for bucket in first_buckets:
        replication_policy = ("basic-replication-rule", bucket.name, None)
        second_bucket = bucket_factory(
            1,
            bucketclass=second_bucketclass,
            replication_policy=replication_policy,
            verify_health=False,
        )[0]
        patch_replication_policy_to_bucket(
            bucket.name, "basic-replication-rule-2", second_bucket.name
        )
        first_end_point = (
            "http://"
            + mcg_obj.s3_internal_endpoint.split("/")[2].split(":")[0]
            + "/"
            + f"{bucket.name}"
        )
        second_end_point = (
            "http://"
            + mcg_obj.s3_internal_endpoint.split("/")[2].split(":")[0]
            + "/"
            + f"{second_bucket.name}"
        )
        endpoints.append(first_end_point)
        endpoints.append(second_end_point)
        second_bucket.verify_health(timeout=180)
        second_buckets.append(second_bucket)
    # Write objects to the buckets
    for endpoint in endpoints:
        s3bench.run_benchmark(
            num_obj=self.MCG_S3_OBJ,
            timeout=7200,
            access_key=mcg_obj.access_key_id,
            secret_key=mcg_obj.access_key,
            end_point=endpoint,
            run_mode="pg",
        )
    time.sleep(wait_time)
    # Restart Noobaa-db pod
    scale_noobaa_lib.noobaa_running_node_restart(pod_name="noobaa-db")
    # Verify bucket replication
    for i in range(len(first_buckets)):
        compare_bucket_object_list(
            mcg_obj, first_buckets[i].name, second_buckets[i].name
        )