Skip to content

Commit

Permalink
Auto-generate test documentation (TheRenegadeCoder#532)
Browse files Browse the repository at this point in the history
* Add auto-generated test documentation

* Add glotter2 dependency

* Update subete to 0.15.0

* Move auto-gen test doc to sources/generated. Upgrade Jekyll

* Remove 'add-host' arguments
  • Loading branch information
rzuckerm authored Apr 4, 2023
1 parent dcbe375 commit cfab2c2
Show file tree
Hide file tree
Showing 48 changed files with 35 additions and 442 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/venv
/docs/_site
/docs/Gemfile.lock
generated/
/requirements-dev.txt
7 changes: 5 additions & 2 deletions generate.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/bin/bash
set -e

echo "*** Generate Webpages ***"
python scripts/automate.py

Expand All @@ -18,7 +20,7 @@ done

echo ""
echo "*** Build With Jekyll ***"
export JEKYLL_VERSION=3.8
export JEKYLL_VERSION=4.2.2
docker run --rm \
-e "JEKYLL_UID=$(id -u)" \
-e "JEKYLL_GID=$(id -g)" \
Expand All @@ -36,7 +38,8 @@ echo "*** Start Webserver ***"
cd docs/_site
python -m http.server >/dev/null &
pid=$!
trap "printf '\n\n*** Kill webserver (PID %s) ***' $pid; kill $pid" SIGINT SIGHUP SIGABRT
trap "printf '\n\n*** Kill webserver (PID %s) ***\n' $pid; kill $pid" SIGINT SIGHUP SIGABRT
sleep 5

echo ""
echo "*** Open Index ***"
Expand Down
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
snakemd>=0.10.0, <0.11.0
subete>=0.14.0, <0.15.0
subete>=0.15.0, <0.16.0
image-titler>=2.3.0, <2.4.0
glotter2>=0.6.0, <0.7.0
28 changes: 26 additions & 2 deletions scripts/automate.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import logging
import os
import pathlib
from datetime import date
from typing import List

import snakemd
import subete
import glotter

log = logging.getLogger(__name__)
AUTO_GEN_TEST_DOC_DIR = "sources/generated"


def _add_section(doc: snakemd.Document, source: str, source_instance: str, section: str, level: int = 2):
Expand Down Expand Up @@ -34,7 +36,12 @@ def _add_section(doc: snakemd.Document, source: str, source_instance: str, secti
def _add_testing_section(doc: snakemd.Document, source: str, source_instance: str):
valid_path = pathlib.Path(f"sources/{source}/{source_instance}/valid-tests.md")
invalid_path = pathlib.Path(f"sources/{source}/{source_instance}/invalid-tests.md")
if valid_path.exists() and invalid_path.exists():
auto_gen_path = pathlib.Path(f"{AUTO_GEN_TEST_DOC_DIR}/{source_instance}/testing.md")
if auto_gen_path.exists():
_add_section(
doc, pathlib.Path(AUTO_GEN_TEST_DOC_DIR).name, source_instance, "Testing", level=2
)
elif valid_path.exists() and invalid_path.exists():
doc.add_header("Testing", level=2)
doc.add_paragraph(
f"""
Expand Down Expand Up @@ -282,6 +289,21 @@ def generate_language_paths(repo: subete.Repo):
_generate_language_index(language)


def generate_auto_gen_test_docs(repo: subete.Repo):
"""
Generate auto-generated test documentation
"""
curr_dir = os.getcwd()
doc_dir = pathlib.Path(AUTO_GEN_TEST_DOC_DIR).absolute()
os.chdir(repo.sample_programs_repo_dir())
glotter.generate_test_docs(
doc_dir=doc_dir,
repo_name="Sample Programs",
repo_url="https://github.com/TheRenegadeCoder/sample-programs"
)
os.chdir(curr_dir)


def generate_languages_index(repo: subete.Repo):
"""
Creates the index.md files for the root directories.
Expand Down Expand Up @@ -368,8 +390,10 @@ def clean(folder: str):
logging.basicConfig(level=logging.INFO)
clean("docs/projects")
clean("docs/languages")
clean(AUTO_GEN_TEST_DOC_DIR)
repo = subete.load()
generate_language_paths(repo)
generate_auto_gen_test_docs(repo)
generate_project_paths(repo)
generate_sample_programs(repo)
generate_languages_index(repo)
Expand Down
1 change: 0 additions & 1 deletion sources/projects/baklava/testing.md

This file was deleted.

13 changes: 0 additions & 13 deletions sources/projects/binary-search/invalid-tests.md

This file was deleted.

8 changes: 0 additions & 8 deletions sources/projects/binary-search/valid-tests.md

This file was deleted.

12 changes: 0 additions & 12 deletions sources/projects/bubble-sort/invalid-tests.md

This file was deleted.

7 changes: 0 additions & 7 deletions sources/projects/bubble-sort/valid-tests.md

This file was deleted.

10 changes: 0 additions & 10 deletions sources/projects/capitalize/invalid-tests.md

This file was deleted.

7 changes: 0 additions & 7 deletions sources/projects/capitalize/valid-tests.md

This file was deleted.

12 changes: 0 additions & 12 deletions sources/projects/convex-hull/invalid-tests.md

This file was deleted.

7 changes: 0 additions & 7 deletions sources/projects/convex-hull/valid-tests.md

This file was deleted.

13 changes: 0 additions & 13 deletions sources/projects/depth-first-search/invalid-tests.md

This file was deleted.

9 changes: 0 additions & 9 deletions sources/projects/depth-first-search/valid-tests.md

This file was deleted.

18 changes: 0 additions & 18 deletions sources/projects/dijkstra/invalid-tests.md

This file was deleted.

3 changes: 0 additions & 3 deletions sources/projects/dijkstra/valid-tests.md

This file was deleted.

7 changes: 0 additions & 7 deletions sources/projects/duplicate-character-counter/testing.md

This file was deleted.

11 changes: 0 additions & 11 deletions sources/projects/even-odd/testing.md

This file was deleted.

13 changes: 0 additions & 13 deletions sources/projects/factorial/testing.md

This file was deleted.

12 changes: 0 additions & 12 deletions sources/projects/fibonacci/testing.md

This file was deleted.

2 changes: 0 additions & 2 deletions sources/projects/file-input-output/testing.md

This file was deleted.

2 changes: 0 additions & 2 deletions sources/projects/fizz-buzz/testing.md

This file was deleted.

16 changes: 0 additions & 16 deletions sources/projects/fraction-math/testing.md

This file was deleted.

2 changes: 0 additions & 2 deletions sources/projects/hello-world/testing.md

This file was deleted.

13 changes: 0 additions & 13 deletions sources/projects/insertion-sort/testing.md

This file was deleted.

11 changes: 0 additions & 11 deletions sources/projects/job-sequencing/testing.md

This file was deleted.

12 changes: 0 additions & 12 deletions sources/projects/josephus-problem/testing.md

This file was deleted.

Loading

0 comments on commit cfab2c2

Please sign in to comment.