def test_download_models_fallback(self, mock_download): """Test the fallback mechanism in download_models()""" tmp_dir = mkdtemp(prefix='bleachbit-chaff') # Test when primary download mirror fails but secondary succeeds. def succeed_on_second(*args): url = args[0] if 'sourceforge' in url: return False if 'bleachbit.org' in url: return True mock_download.side_effect = succeed_on_second ret = download_models(models_dir=tmp_dir) self.assertTrue(ret) self.assertEqual(mock_download.call_count, 6) # Test when both primary and secondary download mirrors will fail. mock_download.reset_mock() mock_download.side_effect = None mock_download.return_value = False ret = download_models(models_dir=tmp_dir) self.assertFalse(ret) self.assertEqual(mock_download.call_count, 2) rmtree(tmp_dir)
def test_Chaff(self): """Unit test for class Chaff""" tmp_dir = mkdtemp(prefix='bleachbit-chaff') # con=Clinton content con_path = os.path.join(tmp_dir, 'content.json.bz2') # sub=Clinton subject sub_path = os.path.join(tmp_dir, 'subject.json.bz2') ts_path = os.path.join(tmp_dir, 'ts.json.bz2') # ts = 2600 Magazine for i in ('download', 'already downloaded'): ret = download_models(content_model_path=con_path, subject_model_path=sub_path, twentysixhundred_model_path=ts_path) self.assertIsInstance(ret, bool) self.assertTrue(ret) self.assertExists(con_path) self.assertExists(sub_path) self.assertExists(ts_path) generated_file_names = generate_emails(5, tmp_dir, con_path, sub_path) self.assertEqual(len(generated_file_names), 5) for fn in generated_file_names: self.assertExists(fn) self.assertGreater(getsize(fn), 100) generated_file_names = generate_2600(5, tmp_dir, ts_path) rmtree(tmp_dir)
def download_models_gui(self): """Download models and return whether successful as boolean""" def on_download_error(msg, msg2): dialog = Gtk.MessageDialog(self, 0, Gtk.MessageType.ERROR, Gtk.ButtonsType.CANCEL, msg) dialog.format_secondary_text(msg2) dialog.run() dialog.destroy() return download_models(on_error=on_download_error)
def test_Chaff(self): """Unit test for class Chaff""" tmp_dir = mkdtemp(prefix='bleachbit-chaff') con_path = os.path.join(tmp_dir, 'content.json.bz2') sub_path = os.path.join(tmp_dir, 'subject.json.bz2') for i in ('download', 'already downloaded'): ret = download_models(content_model_path=con_path, subject_model_path=sub_path) self.assertIsInstance(ret, bool) self.assertTrue(ret) generated_file_names = generate_emails(5, con_path, sub_path, tmp_dir) self.assertEqual(len(generated_file_names), 5) for fn in generated_file_names: self.assertExists(fn) self.assertGreater(getsize(fn), 100) rmtree(tmp_dir)
def test_Chaff(self): """Unit test for class Chaff""" tmp_dir = mkdtemp(prefix='bleachbit-chaff') models_dir = os.path.join(tmp_dir, 'model') os.mkdir(models_dir) # con=Clinton content con_path = os.path.join(models_dir, 'clinton_content_model.json.bz2') # sub=Clinton subject sub_path = os.path.join(models_dir, 'clinton_subject_model.json.bz2') # ts = 2600 Magazine ts_path = os.path.join(models_dir, '2600_model.json.bz2') for _i in ('download', 'already downloaded'): ret = download_models(models_dir=models_dir) self.assertIsInstance(ret, bool) self.assertTrue(ret) self.assertExists(con_path) self.assertExists(sub_path) self.assertExists(ts_path) generated_file_names = generate_emails(5, tmp_dir, models_dir) self.assertEqual(len(generated_file_names), 5) for fn in generated_file_names: self.assertExists(fn) self.assertGreater(getsize(fn), 100) with open(fn) as f: contents = f.read() self.assertIn('To: ', contents) self.assertIn('From: ', contents) self.assertIn('Sent: ', contents) self.assertIn('Subject: ', contents) self.assertNotIn('base64', contents) generated_file_names = generate_2600(5, tmp_dir, models_dir) rmtree(tmp_dir)