def test_update_empty_all(self):
        """If the repository in-sync is empty, then it is not safe to
        update, regardless of the clean state.

        """
        stat = ExternalStatus()
        stat.sync_state = ExternalStatus.UNKNOWN
        stat.clean_state = ExternalStatus.DEFAULT
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)

        stat.clean_state = ExternalStatus.EMPTY
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)

        stat.clean_state = ExternalStatus.UNKNOWN
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)

        stat.clean_state = ExternalStatus.STATUS_OK
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)

        stat.clean_state = ExternalStatus.DIRTY
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)
    def test_update_modified_all(self):
        """If the repository in-sync is modified, then it is safe to
        update only if clean state is ok

        """
        stat = ExternalStatus()
        stat.sync_state = ExternalStatus.MODEL_MODIFIED
        stat.clean_state = ExternalStatus.DEFAULT
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)

        stat.clean_state = ExternalStatus.EMPTY
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)

        stat.clean_state = ExternalStatus.UNKNOWN
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)

        stat.clean_state = ExternalStatus.STATUS_OK
        safe_to_update = stat.safe_to_update()
        self.assertTrue(safe_to_update)

        stat.clean_state = ExternalStatus.DIRTY
        safe_to_update = stat.safe_to_update()
        self.assertFalse(safe_to_update)