from django.test import TestCase from .ingestion import save_ban_event from .models import NodeRegistry class NodeRegistryIngestionTests(TestCase): def test_creates_node_registry_row_for_new_node(self): save_ban_event({'node': '12345', 'action': 'BAN', 'name': 'sshd', 'ip': '203.0.113.1'}) node = NodeRegistry.objects.get(node_id='12345') self.assertEqual(node.alias, '') self.assertEqual(node.display_name, '12345') def test_second_event_updates_last_seen_without_duplicating(self): save_ban_event({'node': '12345', 'action': 'BAN', 'name': 'sshd', 'ip': '203.0.113.1'}) first_seen = NodeRegistry.objects.get(node_id='12345').last_seen save_ban_event({'node': '12345', 'action': 'UNBAN', 'name': 'sshd', 'ip': '203.0.113.1'}) self.assertEqual(NodeRegistry.objects.filter(node_id='12345').count(), 1) self.assertGreaterEqual(NodeRegistry.objects.get(node_id='12345').last_seen, first_seen) def test_display_name_prefers_alias(self): node = NodeRegistry.objects.create(node_id='12345', alias='miraceti-vps1') self.assertEqual(node.display_name, 'miraceti-vps1')