2020-04-16 17:51:29 +03:00

60 lines
2.7 KiB
Python

import unittest
from sqlite_utils.db import NotFoundError
from db import DiscordDB
class TestDatabase(unittest.TestCase):
def setUp(self):
self.db = DiscordDB()
def test_member(self):
member = {'id': 1200, 'name': 'username'}
self.db.add_member(**member)
self.assertEqual(self.db.add_member(**member), member['id'])
self.assertRaises(NotFoundError, self.db.get_member, member_id=100)
self.assertEqual(self.db.get_member(member_id=member['id']), member)
member.update(name="Success")
self.assertTrue(self.db.update_member(member['id'], member['name']))
self.assertEqual(self.db.get_member(member_id=member['id']), member)
def test_player(self):
player = {'id': 1, 'name': 'plato'}
self.assertTrue(self.db.add_player(player['id'], player['name']))
self.assertFalse(self.db.add_player(player['id'], player['name']))
self.assertEqual(self.db.get_player(0), None)
self.assertEqual(self.db.get_player(player['id']), player)
self.assertFalse(self.db.update_player(0, "Error"))
player["name"] = "New name"
self.assertTrue(self.db.update_player(player["id"], player["name"]))
self.assertEqual(self.db.get_player(player['id']), player)
def test_medal(self):
kwargs = {"pid": 1, "bid": 235837, "div": 4, "side": 71, "dmg": 1}
self.assertFalse(self.db.check_medal(**kwargs))
self.assertTrue(self.db.add_reported_medal(**kwargs))
self.assertTrue(self.db.check_medal(**kwargs))
self.assertTrue(self.db.delete_medals([kwargs['bid']]))
def test_hunt(self):
member_id = self.db.add_member(2, name="one")
member_id2 = self.db.add_member(3, name="two")
member_id3 = self.db.add_member(4, name="three")
self.db.add_player(1, 'plato')
self.db.add_player(2, 'draco')
self.assertFalse(self.db.check_hunt(1, member_id))
self.assertFalse(self.db.remove_hunted_player(1, member_id))
self.assertTrue(self.db.add_hunted_player(1, member_id, 123))
self.assertTrue(self.db.add_hunted_player(1, member_id2, 234))
self.assertTrue(self.db.add_hunted_player(1, member_id3, 345))
self.assertTrue(self.db.add_hunted_player(2, member_id, 456))
self.assertListEqual(self.db.get_hunted_player_ids(), [1, 2])
self.assertListEqual(self.db.get_members_to_notify(1), [2, 3, 4])
self.assertListEqual(self.db.get_members_to_notify(2), [2])
self.assertFalse(self.db.add_hunted_player(1, member_id, 567))
self.assertTrue(self.db.check_hunt(1, member_id))
self.assertTrue(self.db.remove_hunted_player(1, member_id))