def _use_test_fedora(sender, **kwargs):
    global _stored_default_fedora_root
    global _stored_default_fedora_pidspace
    
    _stored_default_fedora_root = getattr(settings, "FEDORA_ROOT", None)
    _stored_default_fedora_pidspace = getattr(settings, "FEDORA_PIDSPACE", None)

    if getattr(settings, "FEDORA_TEST_ROOT", None):
        settings.FEDORA_ROOT = settings.FEDORA_TEST_ROOT
        print "Switching to test Fedora: %s" % settings.FEDORA_ROOT
        # pooled fedora connection gets initialized before this change;
        # re-initialize connection with new fedora root configured
        init_pooled_connection()
    else:
        print "FEDORA_TEST_ROOT is not configured in settings; tests will run against %s" % \
            settings.FEDORA_ROOT

    if getattr(settings, "FEDORA_TEST_PIDSPACE", None):
        settings.FEDORA_PIDSPACE = settings.FEDORA_TEST_PIDSPACE
    elif getattr(settings, "FEDORA_PIDSPACE", None):
        settings.FEDORA_PIDSPACE = "%s-test" % settings.FEDORA_PIDSPACE
    print "Using Fedora pidspace: %s" % settings.FEDORA_PIDSPACE
    
    # remove any test objects left over from a previous test run
    remove_test_objects()
    # run syncrepo to load any content models or fixtures
    # - pass any test fedora credentials to syncrepo
    test_user = getattr(settings, 'FEDORA_TEST_USER', None)
    test_pwd = getattr(settings, 'FEDORA_TEST_PASSWORD', None)
    call_command('syncrepo', username=test_user, password=test_pwd)
def _restore_fedora_root(sender, **kwargs):
    global _stored_default_fedora_root
    global _stored_default_fedora_pidspace

    # if there was a pidspace configured, clean up any test objects
    if _stored_default_fedora_pidspace is not None:
        remove_test_objects()
        print "Restoring Fedora pidspace: %s" % _stored_default_fedora_pidspace
        settings.FEDORA_PIDSPACE = _stored_default_fedora_pidspace        
    if _stored_default_fedora_root is not None:
        print "Restoring Fedora root: %s" % _stored_default_fedora_root
        settings.FEDORA_ROOT = _stored_default_fedora_root
        # re-initialize pooled connection with restored fedora root
        init_pooled_connection()