Commit graph

17 commits

Author SHA1 Message Date
Steve Kuznetsov
4f36972414
Clean up artifacts before test runs, not after
When tests fail, artifacts from that tests are necessary to properly
debug the failure and determine how to fix the test. This is impossible
when artifacts are immediately removed after the test is finished.
Instead, the tests should remove old artifacts before the test run
begins.

Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
2017-01-09 10:00:31 -05:00
Miroslav Suchý
843dd2cc51 substitute /releng for /.tito #161
if /releng is present it will be used. Otherwise /.tito will be used.
2015-04-26 14:56:26 +02:00
Dominic Cleal
e3b24b15ed Allow builder to run in test mode on untagged project
Particularly useful when creating new projects and wanting to avoid
creating an initial tag, this allows `tito build --test --srpm` etc
to run without any tag.
2014-05-05 09:02:53 +01:00
Devan Goodwin
ce7393ecaa Add test for GitAnnexBuilder. 2014-03-11 11:27:19 -03:00
Devan Goodwin
a80fc5b6b0 Use test util to write files. 2014-03-11 09:25:45 -03:00
Paul Morgan
3ae1596923 deprecate GitPython
GitPython is not compatible with python3 and may never be:
https://fedoraproject.org/wiki/User:Churchyard/python3
2014-03-09 13:56:17 +00:00
Paul Morgan
9f2c259c85 python 2.4 (rhel 5) does not support 'with...as' syntax
resolves from a73c90cb...

    Using Python 2.4
    Using nose 0.1
    Running tito tests against: /home/sandbox/src
    EEEE.Warning: spacewalk.releng.* namespace in tito.props is obsolete. Use tito.* instead.
    Warning: spacewalk.releng.* namespace in tito.props is obsolete. Use tito.* instead.
    ..............................F...........
    ======================================================================
    ERROR: Failure: SyntaxError (invalid syntax (fixture.py, line 159))
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/usr/lib/python2.4/site-packages/nose/loader.py", line 381, in loadTestsFromName
        module = self.importer.importFromPath(
      File "/usr/lib/python2.4/site-packages/nose/importer.py", line 39, in importFromPath
        return self.importFromDir(dir_path, fqname)
      File "/usr/lib/python2.4/site-packages/nose/importer.py", line 86, in importFromDir
        mod = load_module(part_fqname, fh, filename, desc)
      File "/home/sandbox/test/functional/fetch_tests.py", line 27, in ?
        from fixture import TitoGitTestFixture, tito
      File "/home/sandbox/test/functional/fixture.py", line 159
        with open(os.path.join(full_pkg_dir, 'tito.props'), 'w') \
                ^
    SyntaxError: invalid syntax
2014-02-28 15:38:25 +00:00
Paul Morgan
53f9a02442 avoid TB in nose tests if there is no tty
GitPython's git.util.get_user_id() calls os.getlogin(), which
throws an OSError if there is no tty:

    Traceback (most recent call last):
      File "/home/sandbox/test/functional/multiproject_tests.py", line 65, in setUp
        TitoGitTestFixture.setUp(self)
      File "/home/sandbox/test/functional/fixture.py", line 129, in setUp
        index.commit('Setting offline.')
      File "/usr/lib/python2.7/site-packages/git/index/base.py", line 887, in commit
        return Commit.create_from_tree(self.repo, tree, message, parent_commits, head)
      File "/usr/lib/python2.7/site-packages/git/objects/commit.py", line 303, in create_from_tree
        committer = Actor.committer(cr)
      File "/usr/lib/python2.7/site-packages/git/util.py", line 354, in committer
        return cls._main_actor(cls.env_committer_name, cls.env_committer_email, config_reader)
      File "/usr/lib/python2.7/site-packages/git/util.py", line 327, in _main_actor
        default_email = get_user_id()
      File "/usr/lib/python2.7/site-packages/git/util.py", line 120, in get_user_id
        username = os.getlogin()
    OSError: [Errno 25] Inappropriate ioctl for device

But GitPython also allows to avoid the call by setting
environment variable "USER" to anything other than "UNKNOWN".

Therefore we preempt GitPython by calling os.getlogin() ourselves.
If we have to rescue the exception, export the environment var to
avoid traceback.
2014-02-27 21:22:05 +00:00
Devan Goodwin
1535850328 More testing. 2014-02-03 15:59:26 -04:00
Devan Goodwin
a73c90cbf5 Make external source builder fetch strategy configurable. 2014-01-13 16:29:38 -04:00
Devan Goodwin
a52a2458c4 Merge branch 'master' into sourcefetch
Conflicts:
	test/functional/singleproject_tests.py

Technically not a merge, did a bunch of work only to discover I was mid-merge when I did it.
2014-01-13 14:40:28 -04:00
Devan Goodwin
199f332d4d Start building with external sources and no tag.
Currently uses the files in the directory where tito was initially run, hoping to make this smarter and more useful soon.
2014-01-02 15:20:52 -04:00
Devan Goodwin
a3363cb93f Merge the FiledVersionTagger into the base VersionTagger.
This allows the behaviour to be used in just about any tagger sub-class.

Behaviour will be triggered on the presence of the 'version_template'
section in tito.props.

Renamed config:
  version -> version_template (section)
  file -> destination_file

Separated the replacement of version and release, as caller may just
want one or the other. (it works fine if only one of the variables is
present in your template file) Release is more of an rpm concept so may
not always be wanted in this context.

Removed the notion of default template files, if you want to use this
you need to specify the configuration for it.

Added a functional test to make sure I keep it working.
2013-11-12 13:28:32 -04:00
jesus m. rodriguez
c1df0a1a81 PEP8 cleanup 2011-12-05 14:37:07 -05:00
Devan Goodwin
dc27216b51 Add some multi-project builder tests. 2010-05-24 23:16:49 -03:00
Devan Goodwin
7e8017571f Port multi-project git tests to use GitPython more. 2010-05-24 14:59:50 -03:00
Devan Goodwin
bd84de04c7 Better test repo/project creation. 2010-05-24 11:26:22 -03:00