zuul/tests/unit
James E. Blair e4f1b9b65e Fix infinite recursion in getRelatedChanges
It's possible to have a loop in change relationships (whether accidentally
or intentionally).  The current method of getting related changes in order
to prune the change cache does not handle that.

This reworks that method to be safe for recursion.

During development, it was observed that the set of relevant changes was
actually a mixture of cache keys (which are objects) and cache references
(which are string representations of the same).  This change also refactors
the collection of relevant cache keys into a method which can be tested on
its own to verify we get keys of a consistent type.

Change-Id: Ie76f9b19f10b053f5c72bdaf7be3efc445b53639
2021-10-13 10:42:07 -07:00
..
__init__.py Move tests into test/unit 2017-01-24 10:18:38 -08:00
test_auth.py Bump pyjwt to 2.0.0 2021-01-14 12:35:18 +00:00
test_bubblewrap.py Make most test cases work on MacOS 2020-02-20 12:59:38 +01:00
test_change_matcher.py Make files matcher match changes with no files 2019-08-23 18:59:29 +02:00
test_circular_dependencies.py Periodically maintain connection caches 2021-09-16 10:50:29 +02:00
test_client.py Exit sucessfully when manipulating project keys 2021-09-21 16:04:29 +02:00
test_cmd.py Revert "Revert "Add the process environment to zuul.conf parser"" 2019-11-02 09:10:18 +09:00
test_component_registry.py Several merger cleanups 2021-08-19 15:01:49 -07:00
test_configloader.py Flatten SourceContext data structure 2021-09-30 15:51:57 -07:00
test_connection.py Merge "Add item UUID to MQTT reporter" 2021-07-27 20:35:14 +00:00
test_cross_crd.py Only refresh deps if change messages have changed 2021-09-24 11:47:49 -07:00
test_daemon.py Remove unecessary shebang and exec bit 2018-07-26 07:12:24 +00:00
test_database.py Prepare for SQLAlchemy 2.0 2021-08-12 12:53:40 -07:00
test_default_config.py Add type check for zuul conf 2018-12-10 19:24:50 +08:00
test_disk_accountant.py Optionally disable disk_limit_per_job 2019-02-22 08:10:59 +01:00
test_encryption.py Use nested tempfile fixture for cleanups 2018-02-06 15:18:45 -08:00
test_event_queues.py Don't use executor.builds when processing build result events 2021-09-24 16:25:25 -07:00
test_executor.py Don't use executor.builds when processing build result events 2021-09-24 16:25:25 -07:00
test_gerrit.py Cleanup Zuul's stdout/stderr output 2021-06-04 11:42:02 -07:00
test_gerrit_crd.py Periodically maintain connection caches 2021-09-16 10:50:29 +02:00
test_gerrit_legacy_crd.py Periodically maintain connection caches 2021-09-16 10:50:29 +02:00
test_git_driver.py Use scheduler manager consistently in tests 2020-04-03 14:49:59 +02:00
test_github_crd.py Only refresh deps if change messages have changed 2021-09-24 11:47:49 -07:00
test_github_driver.py Execute merge jobs via ZooKeeper 2021-08-06 15:40:41 -07:00
test_github_requirements.py Fix multiple prs found when commit is not head 2020-09-04 13:47:54 +02:00
test_gitlab_driver.py Merge "gitlab: Add access token name, Update docs, Fix webhook" 2021-07-27 18:47:33 +00:00
test_inventory.py Remove the local builds list from the executor client 2021-09-24 16:26:27 -07:00
test_lib_ansible.py Validate ansible extra packages 2020-05-08 09:03:10 +02:00
test_merger_repo.py Send merge completed events even in case of error 2021-08-19 10:21:21 -07:00
test_model.py Flatten SourceContext data structure 2021-09-30 15:51:57 -07:00
test_multi_driver.py Make test setup_config more pure 2020-02-28 11:50:22 +01:00
test_nodepool.py Fix race in test_node_request_canceled 2021-10-08 09:28:50 -07:00
test_openstack.py Support overlapping repos and a flat workspace scheme 2021-04-29 17:56:24 -07:00
test_pagure_driver.py Only refresh deps if change messages have changed 2021-09-24 11:47:49 -07:00
test_prometheus.py prometheus: add options to start the server and process collector 2021-04-26 14:47:36 +00:00
test_push_reqs.py Make test setup_config more pure 2020-02-28 11:50:22 +01:00
test_reporting.py Report dequeued changes via Github checks API 2020-05-14 07:42:24 +02:00
test_requirements.py Fix reject clauses in the absence of approvals 2018-08-13 12:37:32 +02:00
test_scheduler.py Fix infinite recursion in getRelatedChanges 2021-10-13 10:42:07 -07:00
test_serial.py Make fake test Gerrit merger more realistic 2020-04-29 15:00:05 -07:00
test_sos.py Fix deserializing change refs from cache 2021-09-29 11:26:40 -07:00
test_ssh_agent.py Add SSH Agent Primitives and usage 2017-05-26 09:52:22 -07:00
test_stack_dump.py Several executor threading fixes 2017-10-17 09:49:29 -07:00
test_streaming.py Add option to check fingergw hostnames 2021-07-28 07:22:36 -07:00
test_strings.py Pseudo-shard unique project names in keystore 2021-04-20 09:53:29 -07:00
test_supercedent.py Check branches in supercedent pipelines 2019-04-05 13:59:05 -07:00
test_timer_driver.py Include project name in gerrit branch cache 2021-09-28 17:21:32 -07:00
test_v3.py Merge "Codify branch matchers and refs" 2021-09-27 23:47:59 +00:00
test_web.py Make url an attribute of the base Ref class 2021-10-08 08:30:50 -07:00
test_web_urls.py Initialize ZooKeeper connection in server rather than in cmd classes 2021-03-08 07:15:32 -08:00
test_yamlutil.py Disable aliases in inventory.yaml for better readibility 2021-09-01 09:19:41 +02:00
test_zk.py Merge "Don't use executor.builds when processing build result events" 2021-09-26 10:17:54 +00:00
test_zuultrigger.py Switch to Zookeeper backed trigger event queues 2021-03-18 09:24:09 +01:00