class TestExportTable(unittest.TestCase): # Corresponds to schema in `db/data_schema.sql` header_row = "id,date_updated,language,pull_requests,open_issues,"\ "number_of_commits,number_of_branches,number_of_releases,"\ "number_of_contributors,number_of_watchers,"\ "number_of_stargazers,number_of_forks\n" def setUp(self): if os.environ.get('TRAVIS') == None: self.github = GitHub() self.db = DBConnector() self.config = Config() self.github.update_library_data(self.config.github_user, self.config.github_repos[0]) self.filename = "./csv/{}.csv".format(GitHubData.__tablename__) def test_file_export_succeeds(self): if os.environ.get('TRAVIS') == None: self.assertFalse(os.path.exists(self.filename)) self.db.export_table_to_csv(GitHubData) self.assertTrue(os.path.exists(self.filename)) def test_file_export_has_correct_data(self): if os.environ.get('TRAVIS') == None: self.db.export_table_to_csv(GitHubData) with open(self.filename, 'r') as fp: exported_data = fp.readlines() # Table has correct header self.assertEqual(exported_data[0], self.header_row) # Table exported correct number of rows num_exported_rows = len(exported_data) - 1 # exclude header num_db_rows = len(self.db.get_data(GitHubData)) self.assertEqual(num_exported_rows, num_db_rows) def tearDown(self): if os.environ.get('TRAVIS') == None: os.remove(self.filename)
class TestGitHub(unittest.TestCase): def setUp(self): if os.environ.get('TRAVIS') == None: self.github = GitHub() self.db = DBConnector() self.config = Config() def test_update_library_data(self): if os.environ.get('TRAVIS') == None: res = self.github.update_library_data(self.config.github_user, self.config.github_repos[0]) self.assertTrue(isinstance(res, GitHubData)) res = self.db.delete_data(res.id, 'github_data') self.assertTrue(res)
from db_connector import DBConnector from config import Config from github import GitHub from package_managers import PackageManagers from sendgrid_email import SendGrid config = Config() db = DBConnector() github = GitHub() pm = PackageManagers() sg = SendGrid() # Update the DB with the GitHub repo data for repo in config.github_repos: github.update_library_data(config.github_user, repo) # Update the DB with Package Manager data pm.update_package_manager_data(config.package_manager_urls) # Send an email update sg.send_email(config.to_email, config.from_email, config.email_subject, config.email_body)