Exemplo n.º 1
0
 def test_returns_none_when_files_are_same_files(self):
     namer = Namer()
     writer = StringWriter("b")
     reporter = GenericDiffReporterFactory().get_first_working()
     approver = FileApprover()
     error = approver.verify(namer, writer, reporter)
     self.assertEqual(None, error)
 def setUp(self):
     self.factory = GenericDiffReporterFactory()
     self.reporter = self.factory.get_first_working()
     if os.path.exists(self.tmp_dir):
         shutil.rmtree(self.tmp_dir)
     os.mkdir(self.tmp_dir)
class GenericDiffReporterTests(unittest.TestCase):
    def setUp(self):
        self.factory = GenericDiffReporterFactory()
        self.reporter = self.factory.get_first_working()
        if os.path.exists(self.tmp_dir):
            shutil.rmtree(self.tmp_dir)
        os.mkdir(self.tmp_dir)

    def tearDown(self):
        shutil.rmtree(self.tmp_dir)

    def test_list_configured_reporters(self):
        verify(json.dumps(self.factory.list(), sort_keys=True, indent=4, separators=(',', ': ')), self.reporter)

    def test_get_reporter(self):
        verify(str(self.factory.get("BeyondCompare4")), self.reporter)

    def test_get_winmerge(self):
        verify(str(self.factory.get("WinMerge")), self.factory.get("WinMerge"))

    def test_get_araxis(self):
        verify(str(self.factory.get("AraxisMergeWin")), self.factory.get("AraxisMergeWin"))

    def test_get_araxis_mac(self):
        verify(str(self.factory.get("AraxisMergeMac")), self.factory.get("AraxisMergeMac"))

    def test_get_beyondcompare4_mac(self):
        verify(str(self.factory.get("BeyondCompare4Mac")), self.factory.get("BeyondCompare4Mac"))

    def test_constructs_valid_diff_command(self):
        reporter = self.factory.get("BeyondCompare4")
        namer = Namer()
        received = namer.get_received_filename()
        approved = namer.get_approved_filename()
        command = reporter.get_command(
            received,
            approved
        )
        expected_command = [
            reporter.path,
            received,
            approved
        ]
        self.assertEqual(command, expected_command)

    def test_empty_approved_file_created_when_one_does_not_exist(self):
        namer = Namer()
        received = namer.get_received_filename()
        approved = namer.get_approved_filename()
        if os.path.isfile(approved):
            os.remove(approved)
        self.assertFalse(os.path.isfile(approved))

        reporter = self.factory.get("BeyondCompare4")
        reporter.run_command = lambda command_array: None
        reporter.report(received, approved)
        self.assertEqual(0, os.stat(approved).st_size)

    def test_approved_file_not_changed_when_one_exists_already(self):
        namer = Namer()
        approved_contents = "Approved"
        approved = namer.get_approved_filename()
        os.remove(approved)
        with open(approved, 'w') as approved_file:
            approved_file.write(approved_contents)
        reporter = self.factory.get("BeyondCompare4")
        reporter.run_command = lambda command_array: None

        reporter.report(namer.get_received_filename(), approved)

        with open(approved, 'r') as approved_file:
            actual_contents = approved_file.read()
        self.assertEqual(actual_contents, approved_contents)

    def test_serialization(self):
        n = Namer()
        path = os.path.join(n.get_directory(), 'saved-reporters.json')
        self.factory.save(path)
        with open(path, 'r') as f:
            verify(f.read(), self.reporter)

    def test_deserialization(self):
        namer = Namer()
        full_name = os.path.join(namer.get_directory(), 'custom-reporters.json')
        reporters = self.factory.load(full_name)
        verify(json.dumps(reporters, sort_keys=True, indent=4, separators=(',', ': ')), self.reporter)

    def test_notworking_in_environment(self):
        reporter = GenericDiffReporter(('Custom', 'NotReal'))
        self.assertFalse(reporter.is_working())

    def test_find_working_reporter(self):
        r = self.factory.get_first_working()
        self.assertIsNotNone(r)

    def test_remove_reporter(self):
        self.factory.remove("meld")
        verify(json.dumps(self.factory.list(), sort_keys=True, indent=4, separators=(',', ': ')), self.reporter)

    @staticmethod
    def instantiate_reporter_for_test():
        reporter = GenericDiffReporter.create('echo')
        reporter.run_command = lambda command_array: None
        return reporter

    @property
    def tmp_dir(self):
        test_dir = os.path.dirname(os.path.realpath(__file__))
        return os.path.join(test_dir, 'tmp')

    @property
    def received_file_path(self):
        return os.path.join(
            self.tmp_dir,
            'received_file.txt'
        )

    @property
    def approved_file_path(self):
        return os.path.join(
            self.tmp_dir,
            'approved_file.txt'
        )

    def test_empty_approved_file_created_when_one_does_not_exist(self):
        self.assertFileDoesNotExist(self.approved_file_path)

        reporter = self.instantiate_reporter_for_test()
        reporter.report(self.received_file_path, self.approved_file_path)

        self.assertFileIsEmpty(self.approved_file_path)

    def test_approved_file_not_changed_when_one_exists_already(self):
        approved_contents = "Approved"
        with open(self.approved_file_path, 'w') as approved_file:
            approved_file.write(approved_contents)
        reporter = self.instantiate_reporter_for_test()
        reporter.report(self.received_file_path, self.approved_file_path)

        with open(self.approved_file_path, 'r') as approved_file:
            actual_contents = approved_file.read()
        self.assertEqual(actual_contents, approved_contents)

    def assertFileDoesNotExist(self, file_path):
        file_exists = os.path.isfile(file_path)
        if file_exists:
            msg = "File {} exists when it shouldn't".format(file_path)
            self.fail(msg)

    def assertFileIsEmpty(self, file_path):
        file_size = os.stat(file_path).st_size
        if file_size != 0:
            msg = "File is not empty: {}" % file_path
            self.fail(msg)
Exemplo n.º 4
0
 def setUp(self):
     self.reporter = GenericDiffReporterFactory().get('BeyondCompare4Mac')
Exemplo n.º 5
0
 def setUp(self):
     self.reporter = GenericDiffReporterFactory().get_first_working()
 def setUp(self):
     self.factory = GenericDiffReporterFactory()
     self.reporter = self.factory.get_first_working()
class GenericDiffReporterTests(unittest.TestCase):
    def setUp(self):
        self.factory = GenericDiffReporterFactory()
        self.reporter = self.factory.get_first_working()

    def test_list_configured_reporters(self):
        verify(json.dumps(self.factory.list(), sort_keys=True, indent=4, separators=(",", ": ")), self.reporter)

    def test_get_reporter(self):
        verify(str(self.factory.get("BeyondCompare4")), self.reporter)

    def test_get_winmerge(self):
        verify(str(self.factory.get("WinMerge")), self.factory.get("WinMerge"))

    def test_get_araxis(self):
        verify(str(self.factory.get("AraxisMergeWin")), self.factory.get("AraxisMergeWin"))

    def test_get_araxis_mac(self):
        verify(str(self.factory.get("AraxisMergeMac")), self.factory.get("AraxisMergeMac"))

    def test_get_beyondcompare4_mac(self):
        verify(str(self.factory.get("BeyondCompare4Mac")), self.factory.get("BeyondCompare4Mac"))

    def test_constructs_valid_diff_command(self):
        reporter = self.factory.get("BeyondCompare4")
        namer = Namer()
        received = namer.get_received_filename()
        approved = namer.get_approved_filename()
        command = reporter.get_command(received, approved)
        expected_command = [reporter.path, received, approved]
        self.assertEqual(command, expected_command)

    def test_empty_approved_file_created_when_one_does_not_exist(self):
        namer = Namer()
        received = namer.get_received_filename()
        approved = namer.get_approved_filename()
        if os.path.isfile(approved):
            os.remove(approved)
        self.assertFalse(os.path.isfile(approved))

        reporter = self.factory.get("BeyondCompare4")
        reporter.run_command = lambda command_array: None
        reporter.report(received, approved)
        self.assertEqual(0, os.stat(approved).st_size)

    def test_approved_file_not_changed_when_one_exists_already(self):
        namer = Namer()
        approved_contents = "Approved"
        approved = namer.get_approved_filename()
        os.remove(approved)
        with open(approved, "w") as approved_file:
            approved_file.write(approved_contents)
        reporter = self.factory.get("BeyondCompare4")
        reporter.run_command = lambda command_array: None

        reporter.report(namer.get_received_filename(), approved)

        with open(approved, "r") as approved_file:
            actual_contents = approved_file.read()
        self.assertEqual(actual_contents, approved_contents)

    def test_serialization(self):
        n = Namer()
        path = os.path.join(n.get_directory(), "saved-reporters.json")
        self.factory.save(path)
        with open(path, "r") as f:
            verify(f.read(), self.reporter)

    def test_deserialization(self):
        namer = Namer()
        full_name = os.path.join(namer.get_directory(), "custom-reporters.json")
        reporters = self.factory.load(full_name)
        verify(json.dumps(reporters, sort_keys=True, indent=4, separators=(",", ": ")), self.reporter)

    def test_notworking_in_environment(self):
        reporter = GenericDiffReporter(("Custom", "NotReal"))
        self.assertFalse(reporter.is_working())

    def test_find_working_reporter(self):
        r = self.factory.get_first_working()
        self.assertIsNotNone(r)

    def test_remove_reporter(self):
        self.factory.remove("meld")
        verify(json.dumps(self.factory.list(), sort_keys=True, indent=4, separators=(",", ": ")), self.reporter)
Exemplo n.º 8
0
 def setUp(self):
     self.factory = GenericDiffReporterFactory()
     self.reporter = self.factory.get_first_working()
     if os.path.exists(self.tmp_dir):
         shutil.rmtree(self.tmp_dir)
     os.mkdir(self.tmp_dir)
Exemplo n.º 9
0
class GenericDiffReporterTests(unittest.TestCase):
    def setUp(self):
        self.factory = GenericDiffReporterFactory()
        self.reporter = self.factory.get_first_working()
        if os.path.exists(self.tmp_dir):
            shutil.rmtree(self.tmp_dir)
        os.mkdir(self.tmp_dir)

    def tearDown(self):
        shutil.rmtree(self.tmp_dir)

    def test_list_configured_reporters(self):
        verify(
            json.dumps(self.factory.list(),
                       sort_keys=True,
                       indent=4,
                       separators=(',', ': ')), self.reporter)

    def test_get_reporter(self):
        verify(str(self.factory.get("BeyondCompare4")), self.reporter)

    def test_get_winmerge(self):
        verify(str(self.factory.get("WinMerge")), self.factory.get("WinMerge"))

    def test_get_araxis(self):
        verify(str(self.factory.get("AraxisMergeWin")),
               self.factory.get("AraxisMergeWin"))

    def test_get_araxis_mac(self):
        verify(str(self.factory.get("AraxisMergeMac")),
               self.factory.get("AraxisMergeMac"))

    def test_get_beyondcompare4_mac(self):
        verify(str(self.factory.get("BeyondCompare4Mac")),
               self.factory.get("BeyondCompare4Mac"))

    def test_constructs_valid_diff_command(self):
        reporter = self.factory.get("BeyondCompare4")
        namer = Namer()
        received = namer.get_received_filename()
        approved = namer.get_approved_filename()
        command = reporter.get_command(received, approved)
        expected_command = [reporter.path, received, approved]
        self.assertEqual(command, expected_command)

    def test_empty_approved_file_created_when_one_does_not_exist(self):
        namer = Namer()
        received = namer.get_received_filename()
        approved = namer.get_approved_filename()
        if os.path.isfile(approved):
            os.remove(approved)
        self.assertFalse(os.path.isfile(approved))

        reporter = self.factory.get("BeyondCompare4")
        reporter.run_command = lambda command_array: None
        reporter.report(received, approved)
        self.assertEqual(0, os.stat(approved).st_size)

    def test_approved_file_not_changed_when_one_exists_already(self):
        namer = Namer()
        approved_contents = "Approved"
        approved = namer.get_approved_filename()
        os.remove(approved)
        with open(approved, 'w') as approved_file:
            approved_file.write(approved_contents)
        reporter = self.factory.get("BeyondCompare4")
        reporter.run_command = lambda command_array: None

        reporter.report(namer.get_received_filename(), approved)

        with open(approved, 'r') as approved_file:
            actual_contents = approved_file.read()
        self.assertEqual(actual_contents, approved_contents)

    def test_serialization(self):
        n = Namer()
        path = os.path.join(n.get_directory(), 'saved-reporters.json')
        self.factory.save(path)
        with open(path, 'r') as f:
            verify(f.read(), self.reporter)

    def test_deserialization(self):
        namer = Namer()
        full_name = os.path.join(namer.get_directory(),
                                 'custom-reporters.json')
        reporters = self.factory.load(full_name)
        verify(
            json.dumps(reporters,
                       sort_keys=True,
                       indent=4,
                       separators=(',', ': ')), self.reporter)

    def test_notworking_in_environment(self):
        reporter = GenericDiffReporter(('Custom', 'NotReal'))
        self.assertFalse(reporter.is_working())

    def test_find_working_reporter(self):
        r = self.factory.get_first_working()
        self.assertIsNotNone(r)

    def test_remove_reporter(self):
        self.factory.remove("meld")
        verify(
            json.dumps(self.factory.list(),
                       sort_keys=True,
                       indent=4,
                       separators=(',', ': ')), self.reporter)

    @staticmethod
    def instantiate_reporter_for_test():
        reporter = GenericDiffReporter.create('echo')
        reporter.run_command = lambda command_array: None
        return reporter

    @property
    def tmp_dir(self):
        test_dir = os.path.dirname(os.path.realpath(__file__))
        return os.path.join(test_dir, 'tmp')

    @property
    def received_file_path(self):
        return os.path.join(self.tmp_dir, 'received_file.txt')

    @property
    def approved_file_path(self):
        return os.path.join(self.tmp_dir, 'approved_file.txt')

    def test_empty_approved_file_created_when_one_does_not_exist(self):
        self.assertFileDoesNotExist(self.approved_file_path)

        reporter = self.instantiate_reporter_for_test()
        reporter.report(self.received_file_path, self.approved_file_path)

        self.assertFileIsEmpty(self.approved_file_path)

    def test_approved_file_not_changed_when_one_exists_already(self):
        approved_contents = "Approved"
        with open(self.approved_file_path, 'w') as approved_file:
            approved_file.write(approved_contents)
        reporter = self.instantiate_reporter_for_test()
        reporter.report(self.received_file_path, self.approved_file_path)

        with open(self.approved_file_path, 'r') as approved_file:
            actual_contents = approved_file.read()
        self.assertEqual(actual_contents, approved_contents)

    def assertFileDoesNotExist(self, file_path):
        file_exists = os.path.isfile(file_path)
        if file_exists:
            msg = "File {} exists when it shouldn't".format(file_path)
            self.fail(msg)

    def assertFileIsEmpty(self, file_path):
        file_size = os.stat(file_path).st_size
        if file_size != 0:
            msg = "File is not empty: {}" % file_path
            self.fail(msg)