import os import unittest import sys import csv import backup sys.path.append('..') from lib.ListUsers import ListUsers import test.testcfg as testcfg class TestBackup(unittest.TestCase): def setUp(self): try: self.fetch = ListUsers(testcfg.test_db, unapproved=False, approved=False).get_fetch() self.Backup = backup.Backup(testcfg.test_backup_csv) except Exception as general_setup: self.fail(f"Failed setup already! {general_setup}") def test_set_dialect(self): self.Backup.set_dialect("excel") self.assertEqual(self.Backup.dialect, "excel") def test_set_quoting(self): self.Backup.set_quoting(csv.QUOTE_NONNUMERIC) self.assertEqual(self.Backup.quoting, csv.QUOTE_NONNUMERIC) def test_set_filename(self): self.Backup.set_filename(testcfg.test_backup_csv) self.assertEqual(self.Backup.filename, testcfg.test_backup_csv) self.Backup.set_field_names(self.fetch[0].keys()) def test_set_field_names(self): # @TODO: Dynamic! Having a test scheme from which we setup our test is beneficial here, also values self.Backup.set_field_names(self.fetch[0].keys()) keys_found = self.Backup.field_names self.assertEqual(keys_found, ['id', 'username', 'email', 'name', 'pubkey', 'timestamp', 'status']) def test_backup_to_file(self): try: self.Backup.set_field_names(self.fetch[0].keys()) self.Backup.backup_to_file(self.fetch) self.assertTrue(os.path.exists(testcfg.test_backup_csv), "Assert True that file exists and was written") os.unlink(os.path.realpath(testcfg.test_backup_csv)) except IOError as io_error: self.fail(io_error) if __name__ == '__main__': unittest.main()