# Lifecycle Hooks

{% hint style="info" %}
**Use Case**

* Extend or override existing functionality
  {% endhint %}

## General Hooks

### Before Test

```python
def handle_before_test(context: TestContext):
    pass
```

### After Test

```python
def handle_after_test(context: TestContext):
    pass
```

## On Traverse Hooks

### Length Matches

```python
def handle_length_matches(context: MatchContext, v1: list, v2: list):
    pass
```

### Value Matches

```python
def handle_value_matches(context: MatchContext, v1, v2):
    pass
```

### Value Fuzzy Matches

```python
def handle_value_fuzzy_matches(context: MatchContext, v1, v2):
    pass
```

### Param Name Exists

```python
def handle_param_name_exists(context: MatchContext, key: str, actual: dict):
    pass
```

### Value Type Exists

```python
def handle_value_type_exists(context: MatchContext, value, valid_types: list):
    pass
```
