import pytest import markdown from bs4 import BeautifulSoup from compliance_checks import ( ComputationalRequirementsCheck, ComputationalRequirementsResult, ) empty_template = """\ ## Technical Specifications [optional] ### Compute Infrastructure [More Information Needed] #### Hardware [More Information Needed] #### Software [More Information Needed] """ model_card_template = """\ # Model Card for Sample Model ## Technical Specifications ### Compute infrastructure Jean Zay Public Supercomputer, provided by the French government. #### Hardware * 384 A100 80GB GPUs (48 nodes) #### Software * Megatron-DeepSpeed ([Github link](https://github.com/bigscience-workshop/Megatron-DeepSpeed)) """ success_result = ComputationalRequirementsResult( status=True ) @pytest.mark.parametrize("card", [ model_card_template, ]) def test_run_checks(card): model_card_html = markdown.markdown(card) card_soup = BeautifulSoup(model_card_html, features="html.parser") results = ComputationalRequirementsCheck().run_check(card_soup) assert results == success_result def test_fail_on_empty_template(): model_card_html = markdown.markdown(empty_template) card_soup = BeautifulSoup(model_card_html, features="html.parser") results = ComputationalRequirementsCheck().run_check(card_soup) assert results == ComputationalRequirementsResult()