def test_revision_auto(self, _, is_pristine):
        output = TestBufferConanOutput()

        # Mock the conanfile (return scm_data)
        url = "https://remote.url"
        conanfile = mock.MagicMock()
        conanfile.scm = {'type': 'git', 'url': url, 'revision': 'auto'}

        if not is_pristine:
            save(os.path.join(self.git.folder, "other"), "ccc")

        scm_data, _ = _capture_scm_auto_fields(
            conanfile=conanfile,
            conanfile_dir=self.conanfile_dir,
            package_layout=None,
            output=output,
            ignore_dirty=False,
            scm_to_conandata=False)

        self.assertEqual(scm_data.url, url)
        if is_pristine:
            self.assertEqual(scm_data.revision, self.rev)
            self.assertIn("Revision deduced by 'auto': {}".format(self.rev), output)
            self.assertNotIn("Repo origin deduced", output)
        else:
            self.assertEqual(scm_data.revision, "auto")
            self.assertIn("There are uncommitted changes, skipping the replacement of 'scm.url' "
                          "and 'scm.revision' auto fields. Use --ignore-dirty to force it.",
                          output)
    def test_url_auto_revision_auto(self, _, local_origin):
        output = TestBufferConanOutput()

        # Mock the conanfile (return scm_data)
        conanfile = mock.MagicMock()
        conanfile.scm = {'type': 'git', 'url': 'auto', 'revision': 'auto'}

        # Set the remote for the repo
        url = self.git.folder if local_origin else "https://remote.url"
        self.git.run("remote add origin \"{}\"".format(url))

        scm_data, _ = _capture_scm_auto_fields(
            conanfile=conanfile,
            conanfile_dir=self.conanfile_dir,
            package_layout=None,
            output=output,
            ignore_dirty=True,
            scm_to_conandata=False)

        self.assertEqual(scm_data.url, url)
        self.assertEqual(scm_data.revision, self.rev)
        self.assertIn("Repo origin deduced by 'auto': {}".format(url), output)
        self.assertIn("Revision deduced by 'auto': {}".format(self.rev), output)
        if local_origin:
            self.assertIn("WARN: Repo origin looks like a local path: {}".format(url), output)