Esempio n. 1
0
def main() -> int:
    logging.basicConfig(
        format="%(name)s:%(levelname)s:%(message)s",
        level=logging.INFO,
    )
    args = get_args()

    if not (args.output_file or args.print_coverage or args.badge_icon_url):
        LOGGER.error(
            "One of --output-file, --print-coverage or --badge-icon-url is needed"
        )
        return 1

    available_commands = {
        "cardano-cli":
        get_available_commands(["cardano-cli"], ignore_skips=args.ignore_skips)
    }
    try:
        coverage = get_coverage(coverage_files=args.input_files,
                                available_commands=available_commands)
    except AttributeError as exc:
        LOGGER.error(str(exc))
        return 1

    report, *__ = get_report("cardano-cli",
                             coverage,
                             uncovered_only=args.uncovered_only)

    if args.output_file:
        helpers.write_json(args.output_file, report)
    if args.print_coverage:
        print(report["cardano-cli"]["_coverage_cardano-cli"])
    if args.badge_icon_url:
        print(get_badge_icon(report))
    return 0
def main() -> int:
    args = get_args()

    if not (args.output_file or args.print_coverage or args.badge_icon_url):
        LOGGER.error(
            "One of --output-file, --print-coverage or --badge-icon-url is needed"
        )
        return 1

    available_commands = {
        "cardano-cli": {
            "_count": 0,
            "shelley": get_available_commands(["cardano-cli", "shelley"])
        }
    }
    try:
        coverage = get_coverage(args.input_files, available_commands)
    except AttributeError as exc:
        LOGGER.error(str(exc))
        return 1

    report, *__ = get_report("cardano-cli",
                             coverage,
                             uncovered_only=args.uncovered_only)

    if args.output_file:
        helpers.write_json(args.output_file, report)
    if args.print_coverage:
        print(report["cardano-cli"]["_coverage_cardano-cli"])
    if args.badge_icon_url:
        print(get_badge_icon(report))
    return 0
    def test_pool_registration_fees(
        self,
        cluster: clusterlib.ClusterLib,
        temp_dir: Path,
        pool_users: List[clusterlib.PoolUser],
        addr_fee: Tuple[int, int],
    ):
        """Test pool registration fees."""
        no_of_addr, expected_fee = addr_fee
        rand_str = clusterlib.get_rand_str(4)
        temp_template = f"{helpers.get_func_name()}_{rand_str}_{no_of_addr}"

        pool_name = f"pool_{rand_str}"
        pool_metadata = {
            "name": pool_name,
            "description": "Shelley QA E2E test Test",
            "ticker": "QA1",
            "homepage": "www.test1.com",
        }
        pool_metadata_file = helpers.write_json(
            temp_dir / f"{pool_name}_registration_metadata.json",
            pool_metadata)

        pool_data = clusterlib.PoolData(
            pool_name=pool_name,
            pool_pledge=1000,
            pool_cost=15,
            pool_margin=0.2,
            pool_metadata_url="https://www.where_metadata_file_is_located.com",
            pool_metadata_hash=cluster.gen_pool_metadata_hash(
                pool_metadata_file),
        )

        # create pool owners
        selected_owners = pool_users[:no_of_addr]

        # create certificates
        src_address, tx_files = self._create_pool_certificates(
            cluster_obj=cluster,
            pool_owners=selected_owners,
            temp_template=temp_template,
            pool_data=pool_data,
        )

        # calculate TX fee
        tx_fee = cluster.calculate_tx_fee(src_address=src_address,
                                          tx_name=temp_template,
                                          tx_files=tx_files)
        assert helpers.is_in_interval(
            tx_fee, expected_fee), "Expected fee doesn't match the actual fee"
Esempio n. 4
0
    def test_pool_deregistration_fees(
        self,
        cluster: clusterlib.ClusterLib,
        temp_dir: Path,
        pool_users: List[clusterlib.PoolUser],
        addr_fee: Tuple[int, int],
    ):
        """Test pool deregistration fees."""
        no_of_addr, expected_fee = addr_fee
        rand_str = clusterlib.get_rand_str(4)
        temp_template = f"{helpers.get_func_name()}_{rand_str}_{no_of_addr}"
        src_address = pool_users[0].payment.address

        pool_name = f"pool_{rand_str}"
        pool_metadata = {
            "name": pool_name,
            "description": "Shelley QA E2E test Test",
            "ticker": "QA1",
            "homepage": "www.test1.com",
        }
        pool_metadata_file = helpers.write_json(
            temp_dir / f"{pool_name}_registration_metadata.json",
            pool_metadata)

        pool_data = clusterlib.PoolData(
            pool_name=pool_name,
            pool_pledge=222,
            pool_cost=123,
            pool_margin=0.512,
            pool_metadata_url="https://www.where_metadata_file_is_located.com",
            pool_metadata_hash=cluster.gen_pool_metadata_hash(
                pool_metadata_file),
        )

        # create pool owners
        selected_owners = pool_users[:no_of_addr]

        # create node cold key pair and counter
        node_cold = cluster.gen_cold_key_pair_and_counter(
            node_name=pool_data.pool_name)

        # create deregistration certificate
        pool_dereg_cert_file = cluster.gen_pool_deregistration_cert(
            pool_name=pool_data.pool_name,
            cold_vkey_file=node_cold.vkey_file,
            epoch=cluster.get_last_block_epoch() + 1,
        )

        # submit the pool deregistration certificate through a tx
        tx_files = clusterlib.TxFiles(
            certificate_files=[pool_dereg_cert_file],
            signing_key_files=[
                *[p.payment.skey_file for p in selected_owners],
                *[p.stake.skey_file for p in selected_owners],
                node_cold.skey_file,
            ],
        )

        # calculate TX fee
        tx_fee = cluster.calculate_tx_fee(src_address=src_address,
                                          tx_name=temp_template,
                                          tx_files=tx_files)
        assert tx_fee == expected_fee, "Expected fee doesn't match the actual fee"