Fix UTC usage in archived test files
Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Successful in 4s
Deploy to Testnet / deploy-testnet (push) Successful in 1m14s
Multi-Node Stress Testing / stress-test (push) Successful in 4s
Node Failover Simulation / failover-test (push) Failing after 3s
Python Tests / test-python (push) Failing after 10s
Staking Tests / test-staking-service (push) Failing after 6s
Staking Tests / test-staking-integration (push) Has been skipped
Staking Tests / test-staking-contract (push) Has been skipped
Staking Tests / run-staking-test-runner (push) Has been skipped
Deploy to Testnet / notify-deployment (push) Successful in 2s
Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Successful in 4s
Deploy to Testnet / deploy-testnet (push) Successful in 1m14s
Multi-Node Stress Testing / stress-test (push) Successful in 4s
Node Failover Simulation / failover-test (push) Failing after 3s
Python Tests / test-python (push) Failing after 10s
Staking Tests / test-staking-service (push) Failing after 6s
Staking Tests / test-staking-integration (push) Has been skipped
Staking Tests / test-staking-contract (push) Has been skipped
Staking Tests / run-staking-test-runner (push) Has been skipped
Deploy to Testnet / notify-deployment (push) Successful in 2s
This commit is contained in:
@@ -23,7 +23,7 @@ class MockDecisionEngine:
|
||||
'decision_id': decision_id,
|
||||
'status': 'completed',
|
||||
'result': decision_data.get('proposal', 'approved'),
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
async def submit_vote(self, vote_data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
@@ -32,7 +32,7 @@ class MockDecisionEngine:
|
||||
return {
|
||||
'vote_id': vote_id,
|
||||
'status': 'recorded',
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
class MockConsensusAlgorithm:
|
||||
@@ -50,7 +50,7 @@ class MockConsensusAlgorithm:
|
||||
'consensus_id': consensus_id,
|
||||
'status': 'consensus_reached',
|
||||
'agreement': True,
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
class TestDecisionEngine:
|
||||
@@ -102,7 +102,7 @@ class TestDecisionEngine:
|
||||
'amounts': {'cpu': 50, 'memory': 2048, 'storage': 100}
|
||||
},
|
||||
'participants': ['agent_001', 'agent_002', 'agent_003'],
|
||||
'deadline': (datetime.now(datetime.UTC) + timedelta(hours=1)).isoformat()
|
||||
'deadline': (datetime.now(UTC) + timedelta(hours=1)).isoformat()
|
||||
}
|
||||
|
||||
result = await self.decision_engine.make_decision(decision_data)
|
||||
@@ -157,7 +157,7 @@ class TestConsensusAlgorithm:
|
||||
{'rule': 'priority_based', 'weight': 0.6},
|
||||
{'rule': 'fair_share', 'weight': 0.4}
|
||||
],
|
||||
'effective_date': datetime.now(datetime.UTC).isoformat()
|
||||
'effective_date': datetime.now(UTC).isoformat()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ class TestAgentLifecycleManagement:
|
||||
'agent_id': 'agent_001',
|
||||
'capabilities': ['decision_making', 'voting'],
|
||||
'status': 'active',
|
||||
'join_time': datetime.now(datetime.UTC).isoformat()
|
||||
'join_time': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
self.agents[agent_data['agent_id']] = agent_data
|
||||
@@ -276,12 +276,12 @@ class TestAgentLifecycleManagement:
|
||||
self.agents[agent_id] = {
|
||||
'agent_id': agent_id,
|
||||
'status': 'active',
|
||||
'last_update': datetime.now(datetime.UTC).isoformat()
|
||||
'last_update': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
# Update agent status
|
||||
self.agents[agent_id]['status'] = 'busy'
|
||||
self.agents[agent_id]['last_update'] = datetime.now(datetime.UTC).isoformat()
|
||||
self.agents[agent_id]['last_update'] = datetime.now(UTC).isoformat()
|
||||
|
||||
assert self.agents[agent_id]['status'] == 'busy'
|
||||
assert 'last_update' in self.agents[agent_id]
|
||||
|
||||
@@ -27,7 +27,7 @@ class MockAutonomousEngine:
|
||||
'action': self._determine_action(context),
|
||||
'reasoning': self._generate_reasoning(context),
|
||||
'confidence': self._calculate_confidence(context),
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
self.decisions.append(decision)
|
||||
return decision
|
||||
@@ -67,7 +67,7 @@ class MockLearningSystem:
|
||||
'experience': experience,
|
||||
'lessons_learned': self._extract_lessons(experience),
|
||||
'performance_impact': self._calculate_impact(experience),
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
self.experience_buffer.append(learning_data)
|
||||
return learning_data
|
||||
@@ -93,7 +93,7 @@ class MockLearningSystem:
|
||||
'type': adaptation_data.get('type', 'parameter_adjustment'),
|
||||
'changes': adaptation_data.get('changes', {}),
|
||||
'expected_improvement': adaptation_data.get('expected_improvement', 0.1),
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
self.adaptations[adaptation_id] = adaptation
|
||||
return adaptation
|
||||
@@ -128,7 +128,7 @@ class MockPolicyEngine:
|
||||
'compliance_score': compliance_score,
|
||||
'violations': violations,
|
||||
'approved': compliance_score >= 0.8 and len(violations) == 0,
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
def _calculate_compliance(self, decision: Dict[str, Any]) -> float:
|
||||
|
||||
@@ -26,7 +26,7 @@ class MockVisionProcessor:
|
||||
'processing_type': processing_type,
|
||||
'size': len(image_data),
|
||||
'format': 'processed',
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat(),
|
||||
'timestamp': datetime.now(UTC).isoformat(),
|
||||
'analysis': await self._analyze_image(image_data, processing_type)
|
||||
}
|
||||
self.processed_images[image_id] = result
|
||||
@@ -130,7 +130,7 @@ class MockMultiModalAgent:
|
||||
'result_id': result_id,
|
||||
'modalities_processed': list(results.keys()),
|
||||
'integration': await self._integrate_modalities(results),
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
self.integrated_results[result_id] = integrated_result
|
||||
@@ -151,7 +151,7 @@ class MockMultiModalAgent:
|
||||
return {
|
||||
'sensor_type': sensor_data.get('type', 'unknown'),
|
||||
'readings': sensor_data.get('readings', {}),
|
||||
'timestamp': sensor_data.get('timestamp', datetime.now(datetime.UTC).isoformat()),
|
||||
'timestamp': sensor_data.get('timestamp', datetime.now(UTC).isoformat()),
|
||||
'quality': 'good'
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ class MockContextIntegration:
|
||||
'vision_result': vision_result,
|
||||
'context_data': context_data,
|
||||
'enhanced_understanding': await self._enhance_understanding(vision_result, context_data),
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
self.context_history.append(integration)
|
||||
@@ -298,7 +298,7 @@ class TestMultiModalIntegration:
|
||||
self.sample_sensor_data = {
|
||||
'type': 'temperature',
|
||||
'readings': {'value': 25.5, 'unit': 'celsius'},
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -431,7 +431,7 @@ class TestContextIntegration:
|
||||
vision_result = await self.vision_processor.process_image(self.sample_image)
|
||||
context_data = {
|
||||
'location': f'location_{i}',
|
||||
'timestamp': datetime.now(datetime.UTC).isoformat()
|
||||
'timestamp': datetime.now(UTC).isoformat()
|
||||
}
|
||||
await self.context_integration.integrate_context(vision_result, context_data)
|
||||
|
||||
@@ -530,11 +530,11 @@ class TestPerformanceMetrics:
|
||||
@pytest.mark.asyncio
|
||||
async def test_processing_speed(self):
|
||||
"""Test image processing speed"""
|
||||
start_time = datetime.now(datetime.UTC)
|
||||
start_time = datetime.now(UTC)
|
||||
|
||||
result = await self.vision_processor.process_image(self.sample_image)
|
||||
|
||||
end_time = datetime.now(datetime.UTC)
|
||||
end_time = datetime.now(UTC)
|
||||
processing_time = (end_time - start_time).total_seconds()
|
||||
|
||||
assert processing_time < 2.0 # Should process within 2 seconds
|
||||
@@ -545,12 +545,12 @@ class TestPerformanceMetrics:
|
||||
"""Test batch image processing"""
|
||||
images = [self.sample_image] * 5
|
||||
|
||||
start_time = datetime.now(datetime.UTC)
|
||||
start_time = datetime.now(UTC)
|
||||
results = []
|
||||
for image in images:
|
||||
result = await self.vision_processor.process_image(image)
|
||||
results.append(result)
|
||||
end_time = datetime.now(datetime.UTC)
|
||||
end_time = datetime.now(UTC)
|
||||
|
||||
total_time = (end_time - start_time).total_seconds()
|
||||
avg_time = total_time / len(images)
|
||||
@@ -625,9 +625,9 @@ class TestVisionIntegration:
|
||||
# Simulate real-time processing
|
||||
processing_times = []
|
||||
for i in range(10):
|
||||
start_time = datetime.now(datetime.UTC)
|
||||
start_time = datetime.now(UTC)
|
||||
await vision_processor.process_image(f'frame_{i}'.encode())
|
||||
end_time = datetime.now(datetime.UTC)
|
||||
end_time = datetime.now(UTC)
|
||||
processing_times.append((end_time - start_time).total_seconds())
|
||||
|
||||
avg_time = sum(processing_times) / len(processing_times)
|
||||
|
||||
42
tests/fixtures/staking_fixtures.py
vendored
42
tests/fixtures/staking_fixtures.py
vendored
@@ -67,7 +67,7 @@ def agent_metrics(agent_wallet):
|
||||
total_staked=0.0,
|
||||
staker_count=0,
|
||||
total_rewards_distributed=0.0,
|
||||
last_update_time=datetime.now(datetime.UTC)
|
||||
last_update_time=datetime.now(UTC)
|
||||
)
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ def agent_metrics_bronze(agent_wallet):
|
||||
total_staked=0.0,
|
||||
staker_count=0,
|
||||
total_rewards_distributed=0.0,
|
||||
last_update_time=datetime.now(datetime.UTC)
|
||||
last_update_time=datetime.now(UTC)
|
||||
)
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ def agent_metrics_diamond(agent_wallet):
|
||||
total_staked=0.0,
|
||||
staker_count=0,
|
||||
total_rewards_distributed=0.0,
|
||||
last_update_time=datetime.now(datetime.UTC)
|
||||
last_update_time=datetime.now(UTC)
|
||||
)
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ def staking_pool(db_session, agent_metrics):
|
||||
pool_apy=5.0,
|
||||
staker_count=0,
|
||||
active_stakers=[],
|
||||
last_distribution_time=datetime.now(datetime.UTC),
|
||||
last_distribution_time=datetime.now(UTC),
|
||||
distribution_frequency=1
|
||||
)
|
||||
db_session.add(pool)
|
||||
@@ -185,11 +185,11 @@ def active_stake(db_session, agent_wallet, staker_address):
|
||||
agent_wallet=agent_wallet,
|
||||
amount=1000.0,
|
||||
lock_period=30,
|
||||
start_time=datetime.now(datetime.UTC),
|
||||
end_time=datetime.now(datetime.UTC) + timedelta(days=30),
|
||||
start_time=datetime.now(UTC),
|
||||
end_time=datetime.now(UTC) + timedelta(days=30),
|
||||
status=StakeStatus.ACTIVE,
|
||||
accumulated_rewards=0.0,
|
||||
last_reward_time=datetime.now(datetime.UTC),
|
||||
last_reward_time=datetime.now(UTC),
|
||||
current_apy=8.25,
|
||||
agent_tier=PerformanceTier.GOLD,
|
||||
performance_multiplier=1.5,
|
||||
@@ -210,16 +210,16 @@ def unbonding_stake(db_session, agent_wallet, staker_address):
|
||||
agent_wallet=agent_wallet,
|
||||
amount=1000.0,
|
||||
lock_period=30,
|
||||
start_time=datetime.now(datetime.UTC) - timedelta(days=35),
|
||||
end_time=datetime.now(datetime.UTC) - timedelta(days=5),
|
||||
start_time=datetime.now(UTC) - timedelta(days=35),
|
||||
end_time=datetime.now(UTC) - timedelta(days=5),
|
||||
status=StakeStatus.UNBONDING,
|
||||
accumulated_rewards=50.0,
|
||||
last_reward_time=datetime.now(datetime.UTC) - timedelta(days=5),
|
||||
last_reward_time=datetime.now(UTC) - timedelta(days=5),
|
||||
current_apy=8.25,
|
||||
agent_tier=PerformanceTier.GOLD,
|
||||
performance_multiplier=1.5,
|
||||
auto_compound=False,
|
||||
unbonding_time=datetime.now(datetime.UTC) - timedelta(days=5)
|
||||
unbonding_time=datetime.now(UTC) - timedelta(days=5)
|
||||
)
|
||||
db_session.add(stake)
|
||||
db_session.commit()
|
||||
@@ -236,16 +236,16 @@ def completed_stake(db_session, agent_wallet, staker_address):
|
||||
agent_wallet=agent_wallet,
|
||||
amount=1000.0,
|
||||
lock_period=30,
|
||||
start_time=datetime.now(datetime.UTC) - timedelta(days=70),
|
||||
end_time=datetime.now(datetime.UTC) - timedelta(days=40),
|
||||
start_time=datetime.now(UTC) - timedelta(days=70),
|
||||
end_time=datetime.now(UTC) - timedelta(days=40),
|
||||
status=StakeStatus.COMPLETED,
|
||||
accumulated_rewards=100.0,
|
||||
last_reward_time=datetime.now(datetime.UTC) - timedelta(days=40),
|
||||
last_reward_time=datetime.now(UTC) - timedelta(days=40),
|
||||
current_apy=8.25,
|
||||
agent_tier=PerformanceTier.GOLD,
|
||||
performance_multiplier=1.5,
|
||||
auto_compound=False,
|
||||
unbonding_time=datetime.now(datetime.UTC) - timedelta(days=40)
|
||||
unbonding_time=datetime.now(UTC) - timedelta(days=40)
|
||||
)
|
||||
db_session.add(stake)
|
||||
db_session.commit()
|
||||
@@ -265,11 +265,11 @@ def multiple_stakes(db_session, agent_wallet, staker_address):
|
||||
agent_wallet=agent_wallet,
|
||||
amount=1000.0,
|
||||
lock_period=30,
|
||||
start_time=datetime.now(datetime.UTC),
|
||||
end_time=datetime.now(datetime.UTC) + timedelta(days=30),
|
||||
start_time=datetime.now(UTC),
|
||||
end_time=datetime.now(UTC) + timedelta(days=30),
|
||||
status=StakeStatus.ACTIVE,
|
||||
accumulated_rewards=0.0,
|
||||
last_reward_time=datetime.now(datetime.UTC),
|
||||
last_reward_time=datetime.now(UTC),
|
||||
current_apy=8.25,
|
||||
agent_tier=PerformanceTier.GOLD,
|
||||
performance_multiplier=1.5,
|
||||
@@ -283,11 +283,11 @@ def multiple_stakes(db_session, agent_wallet, staker_address):
|
||||
agent_wallet=agent_wallet,
|
||||
amount=2000.0,
|
||||
lock_period=90,
|
||||
start_time=datetime.now(datetime.UTC),
|
||||
end_time=datetime.now(datetime.UTC) + timedelta(days=90),
|
||||
start_time=datetime.now(UTC),
|
||||
end_time=datetime.now(UTC) + timedelta(days=90),
|
||||
status=StakeStatus.ACTIVE,
|
||||
accumulated_rewards=0.0,
|
||||
last_reward_time=datetime.now(datetime.UTC),
|
||||
last_reward_time=datetime.now(UTC),
|
||||
current_apy=10.0,
|
||||
agent_tier=PerformanceTier.GOLD,
|
||||
performance_multiplier=1.5,
|
||||
|
||||
@@ -123,7 +123,7 @@ class TestStakingLifecycle:
|
||||
print("\n=== Step 3: Simulating lock period ===")
|
||||
# In a real scenario, this would be actual time passing
|
||||
# For testing, we'll just verify the logic works
|
||||
stake.end_time = datetime.now(datetime.UTC) - timedelta(days=1) # Lock period ended
|
||||
stake.end_time = datetime.now(UTC) - timedelta(days=1) # Lock period ended
|
||||
staking_service.session.commit()
|
||||
print(f"✓ Lock period simulated as ended")
|
||||
|
||||
@@ -135,7 +135,7 @@ class TestStakingLifecycle:
|
||||
|
||||
# Step 5: Simulate unbonding period
|
||||
print("\n=== Step 5: Simulating unbonding period ===")
|
||||
unbonded_stake.unbonding_time = datetime.now(datetime.UTC) - timedelta(days=8) # 8 days ago
|
||||
unbonded_stake.unbonding_time = datetime.now(UTC) - timedelta(days=8) # 8 days ago
|
||||
staking_service.session.commit()
|
||||
print(f"✓ Unbonding period simulated as ended")
|
||||
|
||||
@@ -194,7 +194,7 @@ class TestStakingLifecycle:
|
||||
print(f"Initial rewards: {initial_rewards}")
|
||||
|
||||
# Simulate time passing by updating last_reward_time
|
||||
stake.last_reward_time = datetime.now(datetime.UTC) - timedelta(days=10)
|
||||
stake.last_reward_time = datetime.now(UTC) - timedelta(days=10)
|
||||
staking_service.session.commit()
|
||||
|
||||
# Calculate rewards after 10 days
|
||||
|
||||
@@ -122,8 +122,8 @@ class MarketplaceUser(HttpUser):
|
||||
"ram": random.choice(["16GB", "32GB", "64GB", "128GB"]),
|
||||
},
|
||||
"availability": {
|
||||
"start_time": (datetime.now(datetime.UTC) + timedelta(hours=1)).isoformat(),
|
||||
"end_time": (datetime.now(datetime.UTC) + timedelta(days=30)).isoformat(),
|
||||
"start_time": (datetime.now(UTC) + timedelta(hours=1)).isoformat(),
|
||||
"end_time": (datetime.now(UTC) + timedelta(days=30)).isoformat(),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ class TestConfidentialTransactionSecurity:
|
||||
# Generate viewing key for auditor
|
||||
viewing_key = generate_viewing_key(
|
||||
purpose="audit",
|
||||
expires_at=datetime.now(datetime.UTC) + timedelta(days=30),
|
||||
expires_at=datetime.now(UTC) + timedelta(days=30),
|
||||
permissions=["view_amount", "view_parties"],
|
||||
)
|
||||
|
||||
@@ -123,7 +123,7 @@ class TestConfidentialTransactionSecurity:
|
||||
assert len(viewing_key["key_data"]) >= 32 # At least 256 bits
|
||||
|
||||
# Verify expiration
|
||||
assert viewing_key["expires_at"] > datetime.now(datetime.UTC)
|
||||
assert viewing_key["expires_at"] > datetime.now(UTC)
|
||||
|
||||
def test_viewing_key_permissions(self, confidential_service):
|
||||
"""Test that viewing keys respect permission constraints"""
|
||||
@@ -133,7 +133,7 @@ class TestConfidentialTransactionSecurity:
|
||||
ciphertext="encrypted_data_here",
|
||||
sender_key="sender_pubkey",
|
||||
receiver_key="receiver_pubkey",
|
||||
created_at=datetime.now(datetime.UTC),
|
||||
created_at=datetime.now(UTC),
|
||||
)
|
||||
|
||||
# Create viewing key with limited permissions
|
||||
@@ -142,8 +142,8 @@ class TestConfidentialTransactionSecurity:
|
||||
transaction_id=tx.id,
|
||||
key_data="encrypted_viewing_key",
|
||||
permissions=["view_amount"],
|
||||
expires_at=datetime.now(datetime.UTC) + timedelta(days=1),
|
||||
created_at=datetime.now(datetime.UTC),
|
||||
expires_at=datetime.now(UTC) + timedelta(days=1),
|
||||
created_at=datetime.now(UTC),
|
||||
)
|
||||
|
||||
# Test permission enforcement
|
||||
@@ -205,7 +205,7 @@ class TestConfidentialTransactionSecurity:
|
||||
"receiver": "0x456",
|
||||
"amount": 1000,
|
||||
"nonce": 12345,
|
||||
"timestamp": datetime.now(datetime.UTC).isoformat(),
|
||||
"timestamp": datetime.now(UTC).isoformat(),
|
||||
}
|
||||
|
||||
# Store nonce
|
||||
@@ -300,7 +300,7 @@ class TestConfidentialTransactionSecurity:
|
||||
ciphertext="encrypted_data",
|
||||
sender_key="sender_key",
|
||||
receiver_key="receiver_key",
|
||||
created_at=datetime.now(datetime.UTC),
|
||||
created_at=datetime.now(UTC),
|
||||
)
|
||||
|
||||
# Log access
|
||||
@@ -308,7 +308,7 @@ class TestConfidentialTransactionSecurity:
|
||||
transaction_id=tx.id,
|
||||
user_id="auditor-123",
|
||||
action="view_with_viewing_key",
|
||||
timestamp=datetime.now(datetime.UTC),
|
||||
timestamp=datetime.now(UTC),
|
||||
)
|
||||
|
||||
# Verify log integrity
|
||||
@@ -629,7 +629,7 @@ class TestConfidentialTransactionCompliance:
|
||||
ciphertext="encrypted_data",
|
||||
sender_key="sender_key",
|
||||
receiver_key="receiver_key",
|
||||
created_at=datetime.now(datetime.UTC),
|
||||
created_at=datetime.now(UTC),
|
||||
)
|
||||
|
||||
# Generate regulatory report
|
||||
@@ -705,7 +705,7 @@ class TestConfidentialTransactionCompliance:
|
||||
old_tx = ConfidentialTransaction(
|
||||
id="old-tx-123",
|
||||
ciphertext="old_encrypted_data",
|
||||
created_at=datetime.now(datetime.UTC) - timedelta(days=400), # Over 1 year
|
||||
created_at=datetime.now(UTC) - timedelta(days=400), # Over 1 year
|
||||
)
|
||||
|
||||
# Test retention policy enforcement
|
||||
|
||||
@@ -70,7 +70,7 @@ def staking_pool(db_session, agent_metrics):
|
||||
pool_apy=5.0,
|
||||
staker_count=0,
|
||||
active_stakers=[],
|
||||
last_distribution_time=datetime.now(datetime.UTC),
|
||||
last_distribution_time=datetime.now(UTC),
|
||||
distribution_frequency=1
|
||||
)
|
||||
db_session.add(pool)
|
||||
@@ -114,7 +114,7 @@ class TestStakingService:
|
||||
assert stake.current_apy > 8.0 # Allow small rounding error
|
||||
|
||||
# Verify end time calculated
|
||||
expected_end_time = datetime.now(datetime.UTC) + timedelta(days=lock_period)
|
||||
expected_end_time = datetime.now(UTC) + timedelta(days=lock_period)
|
||||
time_diff = abs((stake.end_time - expected_end_time).total_seconds())
|
||||
assert time_diff < 60 # Within 1 minute
|
||||
|
||||
@@ -254,7 +254,7 @@ class TestStakingService:
|
||||
)
|
||||
|
||||
# Simulate lock period ending by updating end_time
|
||||
stake.end_time = datetime.now(datetime.UTC) - timedelta(days=1)
|
||||
stake.end_time = datetime.now(UTC) - timedelta(days=1)
|
||||
staking_service.session.commit()
|
||||
|
||||
# Unbond the stake
|
||||
@@ -277,7 +277,7 @@ class TestStakingService:
|
||||
)
|
||||
|
||||
# Unbond the stake
|
||||
stake.end_time = datetime.now(datetime.UTC) - timedelta(days=1)
|
||||
stake.end_time = datetime.now(UTC) - timedelta(days=1)
|
||||
staking_service.session.commit()
|
||||
await staking_service.unbond_stake(stake.stake_id)
|
||||
|
||||
@@ -304,13 +304,13 @@ class TestStakingService:
|
||||
)
|
||||
|
||||
# Unbond the stake
|
||||
stake.end_time = datetime.now(datetime.UTC) - timedelta(days=1)
|
||||
stake.end_time = datetime.now(UTC) - timedelta(days=1)
|
||||
staking_service.session.commit()
|
||||
await staking_service.unbond_stake(stake.stake_id)
|
||||
|
||||
# Set unbonding time to 35 days ago (past 30-day penalty period)
|
||||
stake = await staking_service.get_stake(stake.stake_id)
|
||||
stake.unbonding_time = datetime.now(datetime.UTC) - timedelta(days=35)
|
||||
stake.unbonding_time = datetime.now(UTC) - timedelta(days=35)
|
||||
staking_service.session.commit()
|
||||
|
||||
# Complete unbonding (no penalty)
|
||||
@@ -352,7 +352,7 @@ class TestStakingService:
|
||||
)
|
||||
|
||||
# Unbond the stake
|
||||
stake.end_time = datetime.now(datetime.UTC) - timedelta(days=1)
|
||||
stake.end_time = datetime.now(UTC) - timedelta(days=1)
|
||||
staking_service.session.commit()
|
||||
await staking_service.unbond_stake(stake.stake_id)
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ def test_block_import():
|
||||
print("\n1. Testing valid block import...")
|
||||
height = base_height
|
||||
parent_hash = head["hash"]
|
||||
timestamp = datetime.now(datetime.UTC).isoformat() + "Z"
|
||||
timestamp = datetime.now(UTC).isoformat() + "Z"
|
||||
valid_hash = compute_block_hash(height, parent_hash, timestamp)
|
||||
|
||||
response = requests.post(
|
||||
|
||||
@@ -116,7 +116,7 @@ def test_cross_node_block_sync():
|
||||
aitbc_head = heads["aitbc"]
|
||||
height = aitbc_head["height"] + 10000000 # Use very high height to avoid conflicts
|
||||
parent_hash = aitbc_head["hash"]
|
||||
timestamp = datetime.now(datetime.UTC).isoformat() + "Z"
|
||||
timestamp = datetime.now(UTC).isoformat() + "Z"
|
||||
valid_hash = compute_block_hash(height, parent_hash, timestamp)
|
||||
|
||||
client = AITBCHTTPClient(timeout=10)
|
||||
|
||||
Reference in New Issue
Block a user