import unittest
import xml.etree.ElementTree as ET

from lib.db import DB
from lib.db_revision import DBRevision
from lib.history import History
from lib.obs import OBS
from lib.obs_revision import OBSRevision


class TestDBMethods(unittest.TestCase):
    def setUp(self):
        self.db = DB(section="test")
        self.obs = OBS()
        self.history = History(self.obs, "xz")

    def test_import(self):
        test_rev = OBSRevision(self.obs, self.history, "openSUSE:Factory", "xz")
        test_rev.parse(
            ET.fromstring(
                """<revision rev="70" vrev="1">
                    <srcmd5>37a33785d29ac57cdd5f2cbd7b0d6588</srcmd5>
                    <version>5.2.7</version>
                    <time>1665184962</time>
                    <user>RBrownFactory</user>
                    <comment></comment>
                    <requestid>1008136</requestid>
                </revision>"""
            )
        )
        DBRevision.import_obs_rev(self.db, test_rev)
        db_rev = DBRevision.fetch_revision(
            self.db, project="openSUSE:Factory", package="xz", rev="70"
        )
        self.assertEqual(str(test_rev), str(db_rev))


if __name__ == "__main__":
    unittest.main()