Skip to content

Conversation

@kpavlov
Copy link
Contributor

@kpavlov kpavlov commented Jan 8, 2026

Replace Testcontainers JUnit dependency and refactor Docker test setup

  1. Replace Testcontainers JUnit dependency and refactor Docker test setup

    • Removed testcontainers-junit dependency and replaced usage with direct testcontainers library.
    • Don't build container in Gradle
    • Upgraded testcontainers to the latest version.
    • Refactored Python A2A server Docker handling into TestA2AServerContainer object for cleaner test configuration.
  2. Enhance Awaitility extensions to support return values

    • Added support for returning values from untilAsserted extensions.
    • Updated test cases to verify return value functionality.
  3. Replace direct assertions with Awaitility in A2A tests

    • Refactored tests to use Awaitility's coroutine extensions for asserting eventually consistent conditions.
    • Simplified sendMessageStreaming, resubscribeTask, and notification configuration logic.
  4. Use lazy/cached initialization for Docker availability check

Motivation and Context

A2AClientJsonRpcIntegrationTest is flaky

Breaking Changes

No


Type of the changes

  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tests improvement
  • Refactoring
  • Dependency changes

Checklist

  • The pull request has a description of the proposed change
  • I read the Contributing Guidelines before opening the pull request
  • The pull request uses develop as the base branch
  • Tests for the changes have been added
  • All new and existing tests passed

@kpavlov kpavlov added the tests Add new tests or modify existing label Jan 8, 2026
@kpavlov kpavlov force-pushed the kpavlov/a2a-docker branch from 9777d90 to 57867e5 Compare January 8, 2026 10:22
@kpavlov kpavlov added the refactoring Code improvements that enhance structure, readability, and quality without changing functionality label Jan 8, 2026
@kpavlov kpavlov changed the title tests: Refactor A2A test, bump Testcontainers tests: Refactor A2A test, bump Testcontainers, improve Awaitility tests Jan 8, 2026
@kpavlov kpavlov added the dependencies Update dependencies label Jan 8, 2026
@kpavlov kpavlov marked this pull request as ready for review January 8, 2026 10:28
@kpavlov kpavlov changed the title tests: Refactor A2A test, bump Testcontainers, improve Awaitility tests tests: Refactor A2A test, bump Testcontainers, improve Awaitility extension & tests Jan 8, 2026
@kpavlov kpavlov force-pushed the kpavlov/a2a-docker branch 6 times, most recently from 0c32b03 to bfefc85 Compare January 8, 2026 11:55
…etup

    - Removed `testcontainers-junit` dependency and replaced usage with direct `testcontainers` library.
    - Don't build container in Gradle
    - Upgraded `testcontainers` to the latest version.
    - Refactored Python A2A server Docker handling into `TestA2APythonServer` object for cleaner test configuration.

2. Enhance Awaitility extensions to support return values

    - Added support for returning values from `untilAsserted` extensions.
    - Updated test cases to verify return value functionality.

3. Replace direct assertions with Awaitility in A2A tests

    - Refactored tests to use Awaitility's coroutine extensions for asserting eventually consistent conditions.
    - Simplified `sendMessageStreaming`, `resubscribeTask`, and notification configuration logic.

4. Use lazy/cached initialization for Docker availability check
@kpavlov kpavlov force-pushed the kpavlov/a2a-docker branch from f39a2da to 2771063 Compare January 8, 2026 20:55
@kpavlov kpavlov merged commit ac54db4 into develop Jan 8, 2026
13 checks passed
@kpavlov kpavlov deleted the kpavlov/a2a-docker branch January 8, 2026 21:41
overfullstack pushed a commit to overfullstack/koog that referenced this pull request Jan 11, 2026
…ension & tests (JetBrains#1338)

Replace Testcontainers JUnit dependency and refactor Docker test setup

1. Replace Testcontainers JUnit dependency and refactor Docker test
setup

- Removed `testcontainers-junit` dependency and replaced usage with
direct `testcontainers` library.
    - Don't build container in Gradle
    - Upgraded `testcontainers` to the latest version.
- Refactored Python A2A server Docker handling into
`TestA2AServerContainer` object for cleaner test configuration.

2. Enhance Awaitility extensions to support return values

- Added support for returning values from `untilAsserted` extensions.
    - Updated test cases to verify return value functionality.

3. Replace direct assertions with Awaitility in A2A tests

- Refactored tests to use Awaitility's coroutine extensions for
asserting eventually consistent conditions.
- Simplified `sendMessageStreaming`, `resubscribeTask`, and notification
configuration logic.
    
4. Use lazy/cached initialization for Docker availability check

## Motivation and Context
A2AClientJsonRpcIntegrationTest is flaky

## Breaking Changes
No

---

#### Type of the changes
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Tests improvement
- [x] Refactoring
- [x] Dependency changes

#### Checklist
- [x] The pull request has a description of the proposed change
- [x] I read the [Contributing
Guidelines](https://github.com/JetBrains/koog/blob/main/CONTRIBUTING.md)
before opening the pull request
- [x] The pull request uses **`develop`** as the base branch
- [ ] Tests for the changes have been added
- [ ] All new and existing tests passed
vova-jb pushed a commit that referenced this pull request Jan 27, 2026
…ension & tests (#1338)

Replace Testcontainers JUnit dependency and refactor Docker test setup

1. Replace Testcontainers JUnit dependency and refactor Docker test
setup

- Removed `testcontainers-junit` dependency and replaced usage with
direct `testcontainers` library.
    - Don't build container in Gradle
    - Upgraded `testcontainers` to the latest version.
- Refactored Python A2A server Docker handling into
`TestA2AServerContainer` object for cleaner test configuration.

2. Enhance Awaitility extensions to support return values

- Added support for returning values from `untilAsserted` extensions.
    - Updated test cases to verify return value functionality.

3. Replace direct assertions with Awaitility in A2A tests

- Refactored tests to use Awaitility's coroutine extensions for
asserting eventually consistent conditions.
- Simplified `sendMessageStreaming`, `resubscribeTask`, and notification
configuration logic.
    
4. Use lazy/cached initialization for Docker availability check

## Motivation and Context
A2AClientJsonRpcIntegrationTest is flaky

## Breaking Changes
No

---

#### Type of the changes
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Tests improvement
- [x] Refactoring
- [x] Dependency changes

#### Checklist
- [x] The pull request has a description of the proposed change
- [x] I read the [Contributing
Guidelines](https://github.com/JetBrains/koog/blob/main/CONTRIBUTING.md)
before opening the pull request
- [x] The pull request uses **`develop`** as the base branch
- [ ] Tests for the changes have been added
- [ ] All new and existing tests passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Update dependencies refactoring Code improvements that enhance structure, readability, and quality without changing functionality tests Add new tests or modify existing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants