Skip to content

Commit

Permalink
Merge pull request #17 from bitcoin-sv/feature/add-whatsonchain-tests
Browse files Browse the repository at this point in the history
Feature/add whatsonchain tests
  • Loading branch information
voyager1708 authored Jan 9, 2025
2 parents 2f72d4b + f11a03a commit d3e4cc3
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,22 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- (Notify of any improvements related to security vulnerabilities or potential risks.)

---
## [1.0.1] - 2025-01-09

### Added
- Enhanced WhatsOnChainBroadcaster network handling:
- Added support for Network enum initialization (Network.MAINNET/Network.TESTNET)
- Added robust backward compatibility for string network parameters ('main'/'test'/'mainnet'/'testnet')
- Added input validation and clear error messages for invalid network parameters
- Added type hints and docstrings for better code clarity
- Added comprehensive test suite for WhatsOnChainBroadcaster:
- Added test cases for Network enum initialization
- Added test cases for string-based network parameters
- Added validation tests for invalid network inputs
- Added URL construction validation tests

---


## [1.0.0] - 2024-12-23

Expand Down
33 changes: 33 additions & 0 deletions tests/test_woc.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import pytest
from bsv.broadcasters.whatsonchain import WhatsOnChainBroadcaster
from bsv.constants import Network
from bsv.broadcaster import BroadcastResponse, BroadcastFailure


class TestWhatsOnChainBroadcast:
def test_network_enum(self):
# Initialize with Network enum
broadcaster = WhatsOnChainBroadcaster(Network.MAINNET)
assert broadcaster.URL == "https://api.whatsonchain.com/v1/bsv/main/tx/raw"

broadcaster = WhatsOnChainBroadcaster(Network.TESTNET)
assert broadcaster.URL == "https://api.whatsonchain.com/v1/bsv/test/tx/raw"

def test_network_string(self):
# Initialize with string (backward compatibility)
broadcaster = WhatsOnChainBroadcaster("main")
assert broadcaster.URL == "https://api.whatsonchain.com/v1/bsv/main/tx/raw"

broadcaster = WhatsOnChainBroadcaster("test")
assert broadcaster.URL == "https://api.whatsonchain.com/v1/bsv/test/tx/raw"

broadcaster = WhatsOnChainBroadcaster("mainnet")
assert broadcaster.URL == "https://api.whatsonchain.com/v1/bsv/main/tx/raw"

broadcaster = WhatsOnChainBroadcaster("testnet")
assert broadcaster.URL == "https://api.whatsonchain.com/v1/bsv/test/tx/raw"

def test_invalid_network(self):
# Test invalid network string
with pytest.raises(ValueError, match="Invalid network string:"):
WhatsOnChainBroadcaster("invalid_network")

0 comments on commit d3e4cc3

Please sign in to comment.