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)