SYMBOL INDEX (519 symbols across 51 files) FILE: check-links.py function find_links (line 11) | def find_links(path): function check_url (line 24) | async def check_url(url, client): function main (line 37) | async def main(path): FILE: copy_html_to_site_and_print_toc.py function _chapters (line 24) | def _chapters(): class ChapterInfo (line 40) | class ChapterInfo(NamedTuple): function make_chapters (line 47) | def make_chapters(): function parse_chapters (line 52) | def parse_chapters() -> Iterator[tuple[str, html.HtmlElement]]: function get_anchor_targets (line 58) | def get_anchor_targets(parsed_html) -> list[str]: function get_chapter_info (line 64) | def get_chapter_info(): function fix_xrefs (line 106) | def fix_xrefs(contents, chapter, chapter_info): function fix_appendix_titles (line 124) | def fix_appendix_titles(contents, chapter, chapter_info): function copy_chapters_across_with_fixes (line 133) | def copy_chapters_across_with_fixes(chapter_info, fixed_toc): function extract_toc_from_book (line 166) | def extract_toc_from_book(): function fix_toc (line 172) | def fix_toc(toc, chapter_info): function print_toc_md (line 195) | def print_toc_md(chapter_info): function rsync_images (line 201) | def rsync_images(): function main (line 208) | def main(): FILE: docs/asciidoc-cheatsheet_files/asciidoc.js function getText (line 23) | function getText(el) { function TocEntry (line 34) | function TocEntry(el, text, toclevel) { function tocEntries (line 40) | function tocEntries(el, toclevels) { function reinstall (line 170) | function reinstall() { function reinstallAndRemoveTimer (line 177) | function reinstallAndRemoveTimer() { FILE: docs/asciidoc-cheatsheet_files/jquery-1.js function color (line 21) | function color(a){if(!jQuery.browser.safari)return false;var ret=documen... function handleHover (line 27) | function handleHover(e){var p=e.relatedTarget;while(p&&p!=this)try{p=p.p... function bindReady (line 28) | function bindReady(){if(readyBound)return;readyBound=true;if(jQuery.brow... function success (line 29) | function success(){if(s.success)s.success(data,status);if(s.global)jQuer... function complete (line 29) | function complete(){if(s.complete)s.complete(xml,status);if(s.global)jQu... function t (line 32) | function t(){return self.step();} function border (line 32) | function border(elem){add(jQuery.css(elem,"borderLeftWidth"),jQuery.css(... function add (line 32) | function add(l,t){left+=parseInt(l)||0;top+=parseInt(t)||0;} FILE: docs/asciidoc-userguide_files/asciidoc.js function getText (line 23) | function getText(el) { function TocEntry (line 34) | function TocEntry(el, text, toclevel) { function tocEntries (line 40) | function tocEntries(el, toclevels) { function reinstall (line 170) | function reinstall() { function reinstallAndRemoveTimer (line 177) | function reinstallAndRemoveTimer() { FILE: misc/get_stats.py function get_log (line 14) | def get_log(): function checkout_commit (line 25) | def checkout_commit(hash): function get_wordcounts (line 29) | def get_wordcounts(): function main (line 43) | def main(): FILE: misc/isolation-talks/djangoisland.py class List (line 33) | class List(models.Model): class Item (line 37) | class Item(models.Model): FILE: misc/plot.py function get_data_from_csv (line 6) | def get_data_from_csv(): FILE: tests/book_parser.py class CodeListing (line 7) | class CodeListing: method __init__ (line 10) | def __init__(self, filename, contents): method is_diff (line 29) | def is_diff(self): method type (line 37) | def type(self): method __repr__ (line 49) | def __repr__(self): class Command (line 53) | class Command(str): method __init__ (line 54) | def __init__(self, a_string): method type (line 65) | def type(self): method __repr__ (line 89) | def __repr__(self): class Output (line 93) | class Output(str): method __init__ (line 94) | def __init__(self, a_string): method type (line 104) | def type(self) -> str: function fix_newlines (line 113) | def fix_newlines(text): function parse_output (line 119) | def parse_output(listing): function _strip_callouts (line 151) | def _strip_callouts(content): function parse_listing (line 160) | def parse_listing(listing): # noqa: PLR0912 function get_commands (line 231) | def get_commands(node): FILE: tests/book_tester.py function contains (line 28) | def contains(inseq, subseq): function wrap_long_lines (line 35) | def wrap_long_lines(text): function split_blocks (line 43) | def split_blocks(text): function fix_test_dashes (line 50) | def fix_test_dashes(output): function strip_mock_ids (line 54) | def strip_mock_ids(output): function strip_object_ids (line 68) | def strip_object_ids(output): function strip_migration_timestamps (line 72) | def strip_migration_timestamps(output): function strip_localhost_port (line 76) | def strip_localhost_port(output): function strip_selenium_trace_ids (line 82) | def strip_selenium_trace_ids(output): function fix_firefox_esr_version (line 106) | def fix_firefox_esr_version(output): function strip_session_ids (line 110) | def strip_session_ids(output): function standardise_assertionerror_none (line 114) | def standardise_assertionerror_none(output): function standardise_git_init_msg (line 118) | def standardise_git_init_msg(output): function strip_git_hashes (line 124) | def strip_git_hashes(output): function strip_callouts (line 145) | def strip_callouts(output): function standardise_library_paths (line 161) | def standardise_library_paths(output): function standardise_geckodriver_tracebacks (line 170) | def standardise_geckodriver_tracebacks(output): function strip_test_speed (line 179) | def strip_test_speed(output): function strip_js_test_speed (line 187) | def strip_js_test_speed(output): function strip_bdd_test_speed (line 195) | def strip_bdd_test_speed(output): function strip_screenshot_timestamps (line 203) | def strip_screenshot_timestamps(output): function strip_docker_image_ids_and_creation_times (line 214) | def strip_docker_image_ids_and_creation_times(output): function fix_curl_stuff (line 223) | def fix_curl_stuff(output): function fix_curl_linebreak_after_download (line 247) | def fix_curl_linebreak_after_download(output): function fix_sqlite_messages (line 262) | def fix_sqlite_messages(actual_text): function standardize_layout_test_pixelsize (line 269) | def standardize_layout_test_pixelsize(actual_text): function fix_creating_database_line (line 277) | def fix_creating_database_line(actual_text): function fix_interactive_managepy_stuff (line 287) | def fix_interactive_managepy_stuff(actual_text): class ChapterTest (line 297) | class ChapterTest(unittest.TestCase): method setUp (line 301) | def setUp(self): method tearDown (line 310) | def tearDown(self): method parse_listings (line 317) | def parse_listings(self): method check_final_diff (line 334) | def check_final_diff(self, ignore=None, diff=None): method start_with_checkout (line 360) | def start_with_checkout(self): method write_to_file (line 364) | def write_to_file(self, codelisting): method apply_patch (line 373) | def apply_patch(self, codelisting): method run_command (line 395) | def run_command(self, command, cwd=None, user_input=None, ignore_error... method prep_virtualenv (line 417) | def prep_virtualenv(self): method prep_database (line 432) | def prep_database(self): method assertLineIn (line 435) | def assertLineIn(self, line, lines): method assert_console_output_correct (line 443) | def assert_console_output_correct(self, actual, expected, ls=False): method find_with_check (line 541) | def find_with_check(self, pos, expected_content): method skip_with_check (line 565) | def skip_with_check(self, pos, expected_content): method replace_command_with_check (line 569) | def replace_command_with_check(self, pos, old, new): method skip_forward_if_skipto_set (line 582) | def skip_forward_if_skipto_set(self) -> None: method _run_tree (line 598) | def _run_tree(self, target="", no_report=False): method assert_directory_tree_correct (line 603) | def assert_directory_tree_correct(self, expected_tree): method assert_all_listings_checked (line 607) | def assert_all_listings_checked(self, listings, exceptions=[]): method check_test_code_cycle (line 627) | def check_test_code_cycle(self, pos, test_command_in_listings=True, ft... method unset_PYTHONDONTWRITEBYTECODE (line 642) | def unset_PYTHONDONTWRITEBYTECODE(self): method run_test_and_check_result (line 647) | def run_test_and_check_result(self, bdd=False): method run_js_tests (line 659) | def run_js_tests(self, tests_path: Path): method check_jasmine_output (line 669) | def check_jasmine_output(self, expected_output): method check_current_contents (line 675) | def check_current_contents(self, listing, actual_contents): method check_commit (line 696) | def check_commit(self, pos): method check_diff_or_status (line 710) | def check_diff_or_status(self, pos): method _manage_py (line 749) | def _manage_py(self): method start_dev_server (line 756) | def start_dev_server(self): method restart_dev_server (line 761) | def restart_dev_server(self): method run_unit_tests (line 768) | def run_unit_tests(self): method run_fts (line 776) | def run_fts(self): method run_interactive_manage_py (line 788) | def run_interactive_manage_py(self, listing): method recognise_listing_and_process_it (line 855) | def recognise_listing_and_process_it(self): FILE: tests/run-js-spec.py function sub_book_path (line 12) | def sub_book_path(text: str) -> str: function run (line 20) | def run(path: Path): FILE: tests/slimerjs-0.9.0/slimerjs.py function resolve (line 10) | def resolve(path): function is_exe (line 16) | def is_exe(fpath): function which (line 19) | def which(program): function showHelp (line 74) | def showHelp(): FILE: tests/source_updater.py class SourceUpdateError (line 12) | class SourceUpdateError(Exception): function get_indent (line 16) | def get_indent(line): class Block (line 20) | class Block(object): method __init__ (line 22) | def __init__(self, node, source): method is_view (line 34) | def is_view(self): method last_line (line 39) | def last_line(self): class Source (line 53) | class Source(object): method __init__ (line 55) | def __init__(self): method from_path (line 59) | def from_path(kls, path): method _from_contents (line 69) | def _from_contents(kls, contents): method lines (line 76) | def lines(self): method functions (line 81) | def functions(self): method views (line 92) | def views(self): method ast (line 97) | def ast(self): method classes (line 105) | def classes(self): method _import_nodes (line 116) | def _import_nodes(self): method _deduped_import_nodes (line 123) | def _deduped_import_nodes(self): method imports (line 139) | def imports(self): method django_imports (line 144) | def django_imports(self): method project_imports (line 148) | def project_imports(self): method general_imports (line 152) | def general_imports(self): method fixed_imports (line 156) | def fixed_imports(self): method find_first_nonimport_line (line 171) | def find_first_nonimport_line(self): method replace_function (line 185) | def replace_function(self, new_lines): method remove_function (line 198) | def remove_function(self, function_name): method find_start_line (line 209) | def find_start_line(self, new_lines): method add_to_class (line 222) | def add_to_class(self, classname, new_lines): method find_end_line (line 236) | def find_end_line(self, new_lines): method add_imports (line 251) | def add_imports(self, imports): method update (line 260) | def update(self, new_contents): method get_updated_contents (line 264) | def get_updated_contents(self): method write (line 270) | def write(self): FILE: tests/sourcetree.py function strip_comments (line 13) | def strip_comments(line): class Commit (line 28) | class Commit: method from_diff (line 32) | def from_diff(commit_info): method all_lines (line 36) | def all_lines(self): method lines_to_add (line 40) | def lines_to_add(self): method lines_to_remove (line 48) | def lines_to_remove(self): method moved_lines (line 56) | def moved_lines(self): method deleted_lines (line 60) | def deleted_lines(self): method new_lines (line 64) | def new_lines(self): method stripped_lines_to_add (line 68) | def stripped_lines_to_add(self): class ApplyCommitException (line 72) | class ApplyCommitException(Exception): class SourceTree (line 76) | class SourceTree: method __init__ (line 77) | def __init__(self): method get_contents (line 82) | def get_contents(self, path): method cleanup (line 86) | def cleanup(self): method run_command (line 95) | def run_command( method get_local_repo_path (line 173) | def get_local_repo_path(self, chapter_name): method start_with_checkout (line 181) | def start_with_checkout(self, chapter, previous_chapter): method get_commit_spec (line 191) | def get_commit_spec(self, commit_ref): method get_files_from_commit_spec (line 194) | def get_files_from_commit_spec(self, commit_spec): method show_future_version (line 199) | def show_future_version(self, commit_spec, path): method patch_from_commit (line 202) | def patch_from_commit(self, commit_ref, path=None): method tidy_up_after_patches (line 212) | def tidy_up_after_patches(self): method apply_listing_from_commit (line 216) | def apply_listing_from_commit(self, listing): method _check_listing_matches_commit (line 233) | def _check_listing_matches_commit(self, listing, commit_spec, future_c... function check_chunks_against_future_contents (line 261) | def check_chunks_against_future_contents(listing_contents, future_conten... function get_offset (line 289) | def get_offset(lines, future_lines): function reindent_to_match (line 303) | def reindent_to_match(code, future_lines): function split_into_chunks (line 308) | def split_into_chunks(code): FILE: tests/test_appendix_DjangoRestFramework.py class AppendixVIITest (line 7) | class AppendixVIITest(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_appendix_Django_Class-Based_Views.py class AppendixIITest (line 7) | class AppendixIITest(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_appendix_bdd.py class AppendixVTest (line 7) | class AppendixVTest(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_appendix_purist_unit_tests.py class Chapter20Test (line 7) | class Chapter20Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_appendix_rest_api.py class AppendixVITest (line 7) | class AppendixVITest(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_book_parser.py class CodeListingTest (line 19) | class CodeListingTest(unittest.TestCase): method test_stringify (line 20) | def test_stringify(self): method test_server_codelisting (line 26) | def test_server_codelisting(self): class CommitRefFinderTest (line 33) | class CommitRefFinderTest(unittest.TestCase): method test_base_finder (line 34) | def test_base_finder(self): method test_finder_on_codelisting (line 39) | def test_finder_on_codelisting(self): class ParseCodeListingTest (line 47) | class ParseCodeListingTest(unittest.TestCase): method test_recognises_code_listings (line 48) | def test_recognises_code_listings(self): method test_recognises_git_commit_refs (line 72) | def test_recognises_git_commit_refs(self): method test_recognises_git_commit_refs_even_if_formatted_as_diffs (line 85) | def test_recognises_git_commit_refs_even_if_formatted_as_diffs(self): method test_recognises_diffs_even_if_they_dont_have_atat (line 99) | def test_recognises_diffs_even_if_they_dont_have_atat(self): method test_recognises_skipme_tag_on_unmarked_code_listing (line 106) | def test_recognises_skipme_tag_on_unmarked_code_listing(self): method test_recognises_skipme_tag_on_code_listing (line 114) | def test_recognises_skipme_tag_on_code_listing(self): method test_recognises_currentcontents_tag (line 122) | def test_recognises_currentcontents_tag(self): method test_recognises_dofirst_tag (line 131) | def test_recognises_dofirst_tag(self): method test_recognises_jasmine_tag (line 139) | def test_recognises_jasmine_tag(self): method test_recognises_server_commands (line 159) | def test_recognises_server_commands(self): method test_recognises_virtualenv_commands (line 169) | def test_recognises_virtualenv_commands(self): method test_recognises_command_with_ats (line 181) | def test_recognises_command_with_ats(self): method test_can_extract_one_command_and_its_output (line 191) | def test_can_extract_one_command_and_its_output(self): method test_extracting_multiple (line 216) | def test_extracting_multiple(self): method test_post_command_comment_with_multiple_spaces (line 247) | def test_post_command_comment_with_multiple_spaces(self): method test_catches_command_with_trailing_comment (line 277) | def test_catches_command_with_trailing_comment(self): method test_handles_multiline_commands (line 298) | def test_handles_multiline_commands(self): method test_handles_inline_inputs (line 323) | def test_handles_inline_inputs(self): method test_strips_asciidoctor_callouts_from_code (line 345) | def test_strips_asciidoctor_callouts_from_code(self): method test_strips_asciidoctor_callouts_from_output (line 359) | def test_strips_asciidoctor_callouts_from_output(self): method test_strip_callouts_helper (line 368) | def test_strip_callouts_helper(self): class GetCommandsTest (line 395) | class GetCommandsTest(unittest.TestCase): method test_extracting_one_command (line 396) | def test_extracting_one_command(self): method test_extracting_multiple (line 402) | def test_extracting_multiple(self): FILE: tests/test_book_tester.py class WrapLongLineTest (line 24) | class WrapLongLineTest(unittest.TestCase): method test_wrap_long_lines_with_words (line 25) | def test_wrap_long_lines_with_words(self): method test_wrap_long_lines_with_words_2 (line 42) | def test_wrap_long_lines_with_words_2(self): method test_wrap_long_lines_with_words_3 (line 47) | def test_wrap_long_lines_with_words_3(self): method test_wrap_long_lines_doesnt_swallow_spaces (line 52) | def test_wrap_long_lines_doesnt_swallow_spaces(self): method test_wrap_long_lines_with_unbroken_chars (line 58) | def test_wrap_long_lines_with_unbroken_chars(self): method test_wrap_long_lines_with_unbroken_chars_2 (line 73) | def test_wrap_long_lines_with_unbroken_chars_2(self): method test_wrap_long_lines_with_indent (line 86) | def test_wrap_long_lines_with_indent(self): class RunCommandTest (line 108) | class RunCommandTest(ChapterTest): method test_calls_sourcetree_run_command_and_marks_as_run (line 109) | def test_calls_sourcetree_run_command_and_marks_as_run(self): method test_raises_if_not_command (line 122) | def test_raises_if_not_command(self): class GetListingsTest (line 127) | class GetListingsTest(ChapterTest): method test_get_listings_gets_exampleblock_code_listings_and_regular_listings (line 130) | def test_get_listings_gets_exampleblock_code_listings_and_regular_list... class AssertConsoleOutputCorrectTest (line 141) | class AssertConsoleOutputCorrectTest(ChapterTest): method test_simple_case (line 142) | def test_simple_case(self): method test_ignores_test_run_times_and_test_dashes (line 148) | def test_ignores_test_run_times_and_test_dashes(self): method test_handles_elipsis (line 171) | def test_handles_elipsis(self): method test_handles_elipsis_at_end_of_line_where_theres_actually_a_linebreak (line 192) | def test_handles_elipsis_at_end_of_line_where_theres_actually_a_linebr... method test_with_start_elipsis_and_OK (line 210) | def test_with_start_elipsis_and_OK(self): method test_with_elipsis_finds_assertionerrors (line 232) | def test_with_elipsis_finds_assertionerrors(self): method test_with_start_elipsis_and_end_longline_elipsis (line 256) | def test_with_start_elipsis_and_end_longline_elipsis(self): method test_with_start_elipsis_and_end_longline_elipsis_with_assertionerror (line 281) | def test_with_start_elipsis_and_end_longline_elipsis_with_assertionerr... method test_for_short_expected_with_trailing_elipsis (line 303) | def test_for_short_expected_with_trailing_elipsis(self): method test_elipsis_lines_still_checked (line 324) | def test_elipsis_lines_still_checked(self): method test_with_middle_elipsis (line 342) | def test_with_middle_elipsis(self): method test_ls (line 370) | def test_ls(self): method test_working_directory_substitution (line 376) | def test_working_directory_substitution(self): method test_tabs (line 382) | def test_tabs(self): method test_ignores_diff_indexes (line 388) | def test_ignores_diff_indexes(self): method test_ignores_callouts (line 409) | def test_ignores_callouts(self): method test_ignores_asciidoctor_callouts (line 428) | def test_ignores_asciidoctor_callouts(self): method test_ignores_git_commit_numers_in_logs (line 447) | def test_ignores_git_commit_numers_in_logs(self): method test_ignores_geckodriver_stacktrace_line_numbers (line 486) | def test_ignores_geckodriver_stacktrace_line_numbers(self): method test_ignores_mock_ids (line 506) | def test_ignores_mock_ids(self): method test_ignores_mock_ids_when_they_dont_have_names (line 525) | def test_ignores_mock_ids_when_they_dont_have_names(self): method test_ignores_phantomjs_run_times (line 544) | def test_ignores_phantomjs_run_times(self): method test_ignores_bdd_run_times (line 550) | def test_ignores_bdd_run_times(self): method test_ignores_object_ids (line 556) | def test_ignores_object_ids(self): method test_ignores_migration_timestamps (line 562) | def test_ignores_migration_timestamps(self): method test_ignores_session_ids (line 568) | def test_ignores_session_ids(self): method test_ignores_3_5_x_AssertionError_None_thing (line 574) | def test_ignores_3_5_x_AssertionError_None_thing(self): method test_ignores_localhost_server_port_4digits (line 582) | def test_ignores_localhost_server_port_4digits(self): method test_ignores_localhost_server_port_5_digits (line 588) | def test_ignores_localhost_server_port_5_digits(self): method test_ignores_127_0_0_1_server_port_4digits (line 594) | def test_ignores_127_0_0_1_server_port_4digits(self): method test_only_ignores_exactly_32_char_strings_no_whitespace (line 600) | def test_only_ignores_exactly_32_char_strings_no_whitespace(self): method test_ignores_selenium_trace_log_ids (line 608) | def test_ignores_selenium_trace_log_ids(self): method test_ignores_firefox_esr_version (line 632) | def test_ignores_firefox_esr_version(self): method test_ignores_docker_image_ids_and_creation_time (line 644) | def test_ignores_docker_image_ids_and_creation_time(self): method test_ignores_minor_differences_in_curl_output1 (line 653) | def test_ignores_minor_differences_in_curl_output1(self): method test_ignores_minor_differences_in_curl_output2 (line 664) | def test_ignores_minor_differences_in_curl_output2(self): method test_ignores_minor_differences_in_curl_output3 (line 673) | def test_ignores_minor_differences_in_curl_output3(self): method test_ignores_minor_differences_in_curl_output4 (line 682) | def test_ignores_minor_differences_in_curl_output4(self): method test_ignores_minor_differences_in_curl_output5 (line 691) | def test_ignores_minor_differences_in_curl_output5(self): method test_ignores_git_localisation_uk_vs_usa (line 700) | def test_ignores_git_localisation_uk_vs_usa(self): method test_ignores_screenshot_times (line 709) | def test_ignores_screenshot_times(self): method test_matches_system_vs_virtualenv_install_paths (line 729) | def test_matches_system_vs_virtualenv_install_paths(self): method test_fixes_stdout_stderr_for_creating_db (line 765) | def test_fixes_stdout_stderr_for_creating_db(self): method test_handles_long_lines (line 803) | def test_handles_long_lines(self): method test_for_minimal_expected (line 826) | def test_for_minimal_expected(self): method test_for_long_traceback (line 861) | def test_for_long_traceback(self): class CurrentContentsTest (line 904) | class CurrentContentsTest(ChapterTest): method test_ok_for_correct_current_contents (line 905) | def test_ok_for_correct_current_contents(self): method test_raises_for_any_line_not_in_actual_contents (line 927) | def test_raises_for_any_line_not_in_actual_contents(self): method test_indentation_is_ignored (line 950) | def test_indentation_is_ignored(self): method test_raises_if_lines_not_in_order (line 971) | def test_raises_if_lines_not_in_order(self): method test_checks_elipsis_blocks_separately (line 995) | def test_checks_elipsis_blocks_separately(self): method test_checks_ignores_blank_lines (line 1019) | def test_checks_ignores_blank_lines(self): class SplitBlocksTest (line 1065) | class SplitBlocksTest(unittest.TestCase): method test_splits_on_multi_newlines (line 1066) | def test_splits_on_multi_newlines(self): method test_splits_on_elipsis (line 1078) | def test_splits_on_elipsis(self): class TestContains (line 1091) | class TestContains: method test_smoketest (line 1092) | def test_smoketest(self): method test_contains_end_seq (line 1095) | def test_contains_end_seq(self): method test_contains_middle_seq (line 1098) | def test_contains_middle_seq(self): method test_contains_oversized_seq (line 1101) | def test_contains_oversized_seq(self): method test_contains_iteslf (line 1104) | def test_contains_iteslf(self): class CheckQunitOuptutTest (line 1109) | class CheckQunitOuptutTest(ChapterTest): method test_partial_listing_passes (line 1110) | def test_partial_listing_passes(self): method test_fails_if_lists_fail_and_no_accounts (line 1119) | def test_fails_if_lists_fail_and_no_accounts(self): method TODOtest_runs_phantomjs_runner_against_lists_tests (line 1127) | def TODOtest_runs_phantomjs_runner_against_lists_tests(self): class CheckFinalDiffTest (line 1144) | class CheckFinalDiffTest(ChapterTest): method test_empty_passes (line 1147) | def test_empty_passes(self): method test_diff_fails (line 1151) | def test_diff_fails(self): method test_blank_lines_ignored (line 1163) | def test_blank_lines_ignored(self): method test_ignore_moves (line 1174) | def test_ignore_moves(self): method test_ignore_secret_key_and_generated_by_django (line 1194) | def test_ignore_secret_key_and_generated_by_django(self): method test_ignore_moves_and_custom (line 1225) | def test_ignore_moves_and_custom(self): FILE: tests/test_chapter_01.py class Chapter1Test (line 15) | class Chapter1Test(ChapterTest): method write_to_file (line 18) | def write_to_file(self, codelisting): method test_listings_and_commands_and_output (line 24) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_02_unittest.py class Chapter2Test (line 11) | class Chapter2Test(ChapterTest): method test_listings_and_commands_and_output (line 15) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_03_unit_test_first_view.py class Chapter3Test (line 13) | class Chapter3Test(ChapterTest): method test_listings_and_commands_and_output (line 17) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_04_philosophy_and_refactoring.py class Chapter4Test (line 13) | class Chapter4Test(ChapterTest): method test_listings_and_commands_and_output (line 17) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_05_post_and_database.py class Chapter5Test (line 12) | class Chapter5Test(ChapterTest): method test_listings_and_commands_and_output (line 16) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_06_explicit_waits_1.py class Chapter6Test (line 10) | class Chapter6Test(ChapterTest): method test_listings_and_commands_and_output (line 14) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_07_working_incrementally.py class Chapter7Test (line 10) | class Chapter7Test(ChapterTest): method test_listings_and_commands_and_output (line 14) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_08_prettification.py class Chapter8Test (line 8) | class Chapter8Test(ChapterTest): method test_listings_and_commands_and_output (line 12) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_09_docker.py class Chapter9Test (line 8) | class Chapter9Test(ChapterTest): method test_listings_and_commands_and_output (line 12) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_10_production_readiness.py class Chapter10Test (line 10) | class Chapter10Test(ChapterTest): method test_listings_and_commands_and_output (line 14) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_11_server_prep.py class Chapter11Test (line 8) | class Chapter11Test(ChapterTest): method test_listings_and_commands_and_output (line 12) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_12_ansible.py class Chapter12Test (line 8) | class Chapter12Test(ChapterTest): method test_listings_and_commands_and_output (line 12) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_13_organising_test_files.py class Chapter13Test (line 7) | class Chapter13Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_14_database_layer_validation.py class Chapter13Test (line 7) | class Chapter13Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_15_simple_form.py class Chapter15Test (line 7) | class Chapter15Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_16_advanced_forms.py class Chapter16Test (line 8) | class Chapter16Test(ChapterTest): method test_listings_and_commands_and_output (line 12) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_17_javascript.py class Chapter16Test (line 7) | class Chapter16Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_19_spiking_custom_auth.py class Chapter19Test (line 7) | class Chapter19Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_20_mocking_1.py class Chapter20Test (line 7) | class Chapter20Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_21_mocking_2.py class Chapter21Test (line 7) | class Chapter21Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_22_fixtures_and_wait_decorator.py class Chapter22Test (line 7) | class Chapter22Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_23_debugging_prod.py class Chapter18Test (line 7) | class Chapter18Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_24_outside_in.py class Chapter24Test (line 7) | class Chapter24Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_25_CI.py class Chapter25Test (line 7) | class Chapter25Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_chapter_26_page_pattern.py class Chapter26Test (line 7) | class Chapter26Test(ChapterTest): method test_listings_and_commands_and_output (line 11) | def test_listings_and_commands_and_output(self): FILE: tests/test_source_updater.py class SourceTest (line 10) | class SourceTest(unittest.TestCase): method test_from_path_constructor_with_existing_file (line 12) | def test_from_path_constructor_with_existing_file(self): method test_from_path_constructor_with_nonexistent_file (line 24) | def test_from_path_constructor_with_nonexistent_file(self): method test_lines (line 31) | def test_lines(self): method test_write_writes_new_content_to_path (line 37) | def test_write_writes_new_content_to_path(self): class FunctionFinderTest (line 48) | class FunctionFinderTest(unittest.TestCase): method test_function_object (line 50) | def test_function_object(self): method test_finds_functions (line 62) | def test_finds_functions(self): method test_finds_views (line 77) | def test_finds_views(self): method test_finds_classes (line 98) | def test_finds_classes(self): class ReplaceFunctionTest (line 115) | class ReplaceFunctionTest(unittest.TestCase): method test_finding_last_line_in_function (line 117) | def test_finding_last_line_in_function(self): method test_finding_last_line_in_function_with_brackets (line 127) | def test_finding_last_line_in_function_with_brackets(self): method test_finding_last_line_in_function_with_brackets_before_another (line 139) | def test_finding_last_line_in_function_with_brackets_before_another(se... method test_changing_the_end_of_a_method (line 156) | def test_changing_the_end_of_a_method(self): class RemoveFunctionTest (line 205) | class RemoveFunctionTest(unittest.TestCase): method test_removing_a_function (line 207) | def test_removing_a_function(self): class AddToClassTest (line 245) | class AddToClassTest(unittest.TestCase): method test_finding_class_info (line 247) | def test_finding_class_info(self): method test_addding_to_class (line 286) | def test_addding_to_class(self): method test_addding_to_class_fixes_indents_and_superfluous_lines (line 329) | def test_addding_to_class_fixes_indents_and_superfluous_lines(self): class ImportsTest (line 360) | class ImportsTest(unittest.TestCase): method test_finding_different_types_of_import (line 362) | def test_finding_different_types_of_import(self): method test_find_first_nonimport_line (line 404) | def test_find_first_nonimport_line(self): method test_find_first_nonimport_line_raises_if_imports_in_a_mess (line 420) | def test_find_first_nonimport_line_raises_if_imports_in_a_mess(self): method test_fixed_imports (line 432) | def test_fixed_imports(self): method test_add_import (line 496) | def test_add_import(self): method test_add_import_chooses_longer_lines (line 545) | def test_add_import_chooses_longer_lines(self): method test_add_import_ends_up_in_updated_contents_when_appending (line 569) | def test_add_import_ends_up_in_updated_contents_when_appending(self): method test_add_import_ends_up_in_updated_contents_when_prepending (line 598) | def test_add_import_ends_up_in_updated_contents_when_prepending(self): class LineFindingTests (line 628) | class LineFindingTests(unittest.TestCase): method test_finding_start_line (line 630) | def test_finding_start_line(self): method test_finding_end_line (line 654) | def test_finding_end_line(self): method test_finding_end_line_depends_on_start (line 677) | def test_finding_end_line_depends_on_start(self): class SourceUpdateTest (line 695) | class SourceUpdateTest(unittest.TestCase): method test_update_with_empty_contents (line 697) | def test_update_with_empty_contents(self): method test_adds_final_newline_if_necessary (line 702) | def test_adds_final_newline_if_necessary(self): FILE: tests/test_sourcetree.py class GetFileTest (line 18) | class GetFileTest(unittest.TestCase): method test_get_contents (line 19) | def test_get_contents(self): class StripCommentTest (line 25) | class StripCommentTest(unittest.TestCase): method test_strips_python_comments (line 26) | def test_strips_python_comments(self): method test_strips_js_comments (line 30) | def test_strips_js_comments(self): method test_doesnt_break_comment_lines (line 34) | def test_doesnt_break_comment_lines(self): method test_doesnt_break_trailing_slashes (line 37) | def test_doesnt_break_trailing_slashes(self): class StartWithCheckoutTest (line 41) | class StartWithCheckoutTest(unittest.TestCase): method test_get_local_repo_path (line 42) | def test_get_local_repo_path(self): method test_checks_out_repo_chapter_as_main (line 48) | def test_checks_out_repo_chapter_as_main(self): class ApplyFromGitRefTest (line 62) | class ApplyFromGitRefTest(unittest.TestCase): method setUp (line 63) | def setUp(self): method test_from_real_git_stuff (line 72) | def test_from_real_git_stuff(self): method test_leaves_staging_empty (line 96) | def test_leaves_staging_empty(self): method test_raises_if_wrong_file (line 113) | def test_raises_if_wrong_file(self): method _checkout_commit (line 129) | def _checkout_commit(self, commit): method test_raises_if_too_many_files_in_commit (line 134) | def test_raises_if_too_many_files_in_commit(self): method test_raises_if_listing_doesnt_show_all_new_lines_in_diff (line 150) | def test_raises_if_listing_doesnt_show_all_new_lines_in_diff(self): method test_raises_if_listing_lines_in_wrong_order (line 164) | def test_raises_if_listing_lines_in_wrong_order(self): method test_line_ordering_check_isnt_confused_by_dupe_lines (line 179) | def test_line_ordering_check_isnt_confused_by_dupe_lines(self): method test_line_ordering_check_isnt_confused_by_new_lines_that_dupe_existing (line 198) | def test_line_ordering_check_isnt_confused_by_new_lines_that_dupe_exis... method DONTtest_non_dupes_are_still_order_checked (line 219) | def DONTtest_non_dupes_are_still_order_checked(self): method test_raises_if_any_other_listing_lines_not_in_before_version (line 242) | def test_raises_if_any_other_listing_lines_not_in_before_version(self): method test_happy_with_lines_in_before_and_after_version (line 258) | def test_happy_with_lines_in_before_and_after_version(self): method test_raises_if_listing_line_not_in_after_version (line 278) | def test_raises_if_listing_line_not_in_after_version(self): method test_happy_with_lines_from_just_before_diff (line 296) | def test_happy_with_lines_from_just_before_diff(self): method test_listings_showing_a_move_mean_can_ignore_commit_lines_added_and_removed (line 311) | def test_listings_showing_a_move_mean_can_ignore_commit_lines_added_an... method test_listings_showing_a_move_mean_can_ignore_commit_lines_added_and_removed_2 (line 332) | def test_listings_showing_a_move_mean_can_ignore_commit_lines_added_an... method test_happy_with_elipsis (line 350) | def test_happy_with_elipsis(self): method DONTtest_listings_must_use_elipsis_to_indicate_skipped_lines (line 365) | def DONTtest_listings_must_use_elipsis_to_indicate_skipped_lines(self): method test_happy_with_python_callouts (line 390) | def test_happy_with_python_callouts(self): method test_happy_with_js_callouts (line 405) | def test_happy_with_js_callouts(self): method test_happy_with_blank_lines (line 420) | def test_happy_with_blank_lines(self): method test_handles_indents (line 436) | def test_handles_indents(self): method test_over_indentation_differences_are_picked_up (line 454) | def test_over_indentation_differences_are_picked_up(self): method test_under_indentation_differences_are_picked_up (line 473) | def test_under_indentation_differences_are_picked_up(self): method test_with_diff_listing_passing_case (line 492) | def test_with_diff_listing_passing_case(self): method test_with_diff_listing_failure_case (line 516) | def test_with_diff_listing_failure_case(self): class SourceTreeRunCommandTest (line 543) | class SourceTreeRunCommandTest(unittest.TestCase): method test_running_simple_command (line 544) | def test_running_simple_command(self): method test_default_directory_is_tempdir (line 549) | def test_default_directory_is_tempdir(self): method test_returns_output (line 554) | def test_returns_output(self): method test_raises_on_errors (line 559) | def test_raises_on_errors(self): method test_environment_variables (line 567) | def test_environment_variables(self): method test_doesnt_raise_for_some_things_where_a_return_code_is_ok (line 573) | def test_doesnt_raise_for_some_things_where_a_return_code_is_ok(self): method test_cleanup_kills_backgrounded_processes_and_rmdirs (line 581) | def test_cleanup_kills_backgrounded_processes_and_rmdirs(self): method test_running_interactive_command (line 615) | def test_running_interactive_command(self): class CommitTest (line 625) | class CommitTest(unittest.TestCase): method test_init_from_example (line 626) | def test_init_from_example(self): class CheckChunksTest (line 729) | class CheckChunksTest(unittest.TestCase): method test_get_offset_when_none (line 730) | def test_get_offset_when_none(self): method test_get_offset_when_some (line 741) | def test_get_offset_when_some(self): method test_passing_case (line 754) | def test_passing_case(self): method test_over_indentation_differences_are_picked_up (line 772) | def test_over_indentation_differences_are_picked_up(self): method test_under_indentation_differences_are_picked_up (line 791) | def test_under_indentation_differences_are_picked_up(self): method test_leading_blank_lines_in_listing_are_ignored (line 810) | def test_leading_blank_lines_in_listing_are_ignored(self): method test_thing (line 829) | def test_thing(self): method test_trailing_blank_lines_in_listing_are_ignored (line 862) | def test_trailing_blank_lines_in_listing_are_ignored(self): method test_elipsis_lines_are_ignored (line 881) | def test_elipsis_lines_are_ignored(self): FILE: tests/test_write_to_file.py class ClassFinderTest (line 17) | class ClassFinderTest(unittest.TestCase): method test_find_last_line_for_class (line 19) | def test_find_last_line_for_class(self): class LineFinderTest (line 48) | class LineFinderTest(unittest.TestCase): method test_number_of_identical_chars (line 50) | def test_number_of_identical_chars(self): class WriteToFileTest (line 70) | class WriteToFileTest(unittest.TestCase): method setUp (line 73) | def setUp(self): method tearDown (line 76) | def tearDown(self): method test_simple_case (line 79) | def test_simple_case(self): method test_multiple_files (line 87) | def test_multiple_files(self): method assert_write_to_file_gives (line 97) | def assert_write_to_file_gives( method test_strips_python_line_callouts_one_space (line 111) | def test_strips_python_line_callouts_one_space(self): method test_strips_python_line_callouts_two_spaces (line 115) | def test_strips_python_line_callouts_two_spaces(self): method test_strips_js_line_callouts (line 120) | def test_strips_js_line_callouts(self): method test_doesnt_mess_with_multiple_newlines (line 127) | def test_doesnt_mess_with_multiple_newlines(self): method test_existing_file_bears_no_relation_means_replaced (line 132) | def test_existing_file_bears_no_relation_means_replaced(self): method test_existing_file_has_views_means_apppend (line 139) | def test_existing_file_has_views_means_apppend(self): method test_existing_file_has_single_class_means_replace (line 170) | def test_existing_file_has_single_class_means_replace(self): method test_existing_file_has_multiple_classes_means_append (line 190) | def test_existing_file_has_multiple_classes_means_append(self): method test_leading_elipsis_is_ignored (line 235) | def test_leading_elipsis_is_ignored(self): method test_adding_import_at_top_then_elipsis_then_modified_stuff (line 274) | def test_adding_import_at_top_then_elipsis_then_modified_stuff(self): method DONTtest_adding_import_at_top_without_elipsis_then_modified_stuff (line 309) | def DONTtest_adding_import_at_top_without_elipsis_then_modified_stuff(... method test_adding_import_at_top_then_elipsis_then_totally_new_stuff (line 350) | def test_adding_import_at_top_then_elipsis_then_totally_new_stuff(self): method test_elipsis_indicating_which_class_to_add_new_method_to (line 387) | def test_elipsis_indicating_which_class_to_add_new_method_to(self): method test_adding_import_at_top_sorts_alphabetically_respecting_django_and_locals (line 430) | def test_adding_import_at_top_sorts_alphabetically_respecting_django_a... method test_with_new_contents_then_indented_elipsis_then_appendix (line 529) | def test_with_new_contents_then_indented_elipsis_then_appendix(self): method test_for_existing_file_replaces_matching_lines (line 552) | def test_for_existing_file_replaces_matching_lines(self): method test_for_existing_file_doesnt_swallow_whitespace (line 585) | def test_for_existing_file_doesnt_swallow_whitespace(self): method test_longer_new_file_starts_replacing_from_first_different_line (line 629) | def test_longer_new_file_starts_replacing_from_first_different_line(se... method test_changing_the_end_of_a_method (line 661) | def test_changing_the_end_of_a_method(self): method test_for_existing_file_inserting_new_lines_between_comments (line 704) | def test_for_existing_file_inserting_new_lines_between_comments(self): method test_with_single_line_replacement (line 757) | def test_with_single_line_replacement(self): method test_with_single_line_replacement_finds_most_probable_line (line 784) | def test_with_single_line_replacement_finds_most_probable_line(self): method test_with_single_line_assertion_replacement (line 811) | def test_with_single_line_assertion_replacement(self): method test_with_single_line_assertion_replacement_finds_right_one (line 838) | def test_with_single_line_assertion_replacement_finds_right_one(self): method test_with_single_line_assertion_replacement_real_views_example (line 871) | def test_with_single_line_assertion_replacement_real_views_example(self): method test_changing_function_signature_and_stripping_comment (line 931) | def test_changing_function_signature_and_stripping_comment(self): method test_with_two_elipsis_dedented_change (line 952) | def test_with_two_elipsis_dedented_change(self): method test_indents_in_new_dont_confuse_things (line 989) | def test_indents_in_new_dont_confuse_things(self): method test_double_indents_in_new_dont_confuse_things (line 1020) | def test_double_indents_in_new_dont_confuse_things(self): FILE: tests/update_source_repo.py function fetch_if_possible (line 13) | def fetch_if_possible(target_dir: Path): function update_sources_for_chapter (line 35) | def update_sources_for_chapter(chapter, previous_chapter=None): function checkout_testrepo_branches (line 86) | def checkout_testrepo_branches(): function main (line 92) | def main(): FILE: tests/write_to_file.py function _replace_lines_from_to (line 14) | def _replace_lines_from_to(old_lines, new_lines, start_pos, end_pos): function _get_function (line 30) | def _get_function(source, function_name): function _replace_lines_from (line 42) | def _replace_lines_from(old_lines, new_lines, start_pos): function _number_of_identical_chars_at_beginning (line 54) | def _number_of_identical_chars_at_beginning(string1, string2): function number_of_identical_chars (line 62) | def number_of_identical_chars(string1, string2): function _replace_single_line (line 71) | def _replace_single_line(old_lines, new_lines): function _replace_lines_in (line 81) | def _replace_lines_in(old_lines, new_lines): function add_import_and_new_lines (line 126) | def add_import_and_new_lines(new_lines, old_lines): function _find_last_line_for_class (line 139) | def _find_last_line_for_class(source, classname): function add_to_class (line 149) | def add_to_class(new_lines, old_lines): function write_to_file (line 158) | def write_to_file(codelisting, cwd): function _write_to_file (line 172) | def _write_to_file(path, new_contents):