Ticket #4086: twisted4086.3.patch

File twisted4086.3.patch, 5.1 KB (added by necaris, 3 years ago)

Patch to deprecate "unsigned" flag, with test and news file, maintaining short-form option

  • twisted/topfiles/4086.removal

     
     1The 'unsigned' flag to twisted.scripts.tap2rpm.MyOptions is now deprecated. 
  • twisted/scripts/test/test_tap2rpm.py

     
    55Tests for L{twisted.scripts.tap2rpm}. 
    66""" 
    77import os 
     8 
    89from twisted.trial.unittest import TestCase, SkipTest 
    910from twisted.python import procutils 
     11from twisted.python import versions 
     12from twisted.python import deprecate 
    1013from twisted.python.failure import Failure 
    1114from twisted.internet import utils 
    1215from twisted.scripts import tap2rpm 
     
    378381 
    379382        # Try and make an RPM from that tapfile. 
    380383        _makeRPMs(tapfile=tapfile) 
     384 
     385 
     386    def test_unsignedFlagDeprecationWarning(self): 
     387        """ 
     388        The 'unsigned' flag in tap2rpm should be deprecated, and its use 
     389        should raise a warning as such. 
     390        """ 
     391        config = tap2rpm.MyOptions() 
     392        config.parseOptions(['--unsigned']) 
     393        warnings = self.flushWarnings() 
     394        self.assertEqual(DeprecationWarning, warnings[0]['category']) 
     395        self.assertEqual( 
     396            deprecate.getDeprecationWarningString( 
     397                config.opt_unsigned, versions.Version("Twisted", 12, 2, 0)), 
     398            warnings[0]['message']) 
     399        self.assertEqual(1, len(warnings)) 
  • twisted/scripts/tap2rpm.py

     
    77import tempfile 
    88import tarfile 
    99from StringIO import StringIO 
     10import warnings 
    1011 
    11 from twisted.python import usage, log 
     12from twisted.python import usage, log, versions, deprecate 
    1213 
    1314 
    1415################################# 
     
    3637#  check for required files 
    3738if [ ! -x /usr/bin/twistd ] 
    3839then 
    39         echo "$0: Aborting, no /usr/bin/twistd found" 
    40         exit 0 
     40        echo "$0: Aborting, no /usr/bin/twistd found" 
     41        exit 0 
    4142fi 
    4243if [ ! -r "$file" ] 
    4344then 
    44         echo "$0: Aborting, no file $file found." 
    45         exit 0 
     45        echo "$0: Aborting, no file $file found." 
     46        exit 0 
    4647fi 
    4748 
    4849#  set up run directory if necessary 
    4950if [ ! -d "${rundir}" ] 
    5051then 
    51         mkdir -p "${rundir}" 
     52        mkdir -p "${rundir}" 
    5253fi 
    5354 
    5455 
    5556case "$1" in 
    56         start) 
    57                 echo -n "Starting %(rpm_file)s: twistd" 
    58                 daemon twistd  \\ 
    59                                 --pidfile=$pidfile \\ 
    60                                 --rundir=$rundir \\ 
    61                                 --%(twistd_option)s=$file \\ 
    62                                 --logfile=$logfile 
    63                 status %(rpm_file)s 
    64                 ;; 
     57        start) 
     58                echo -n "Starting %(rpm_file)s: twistd" 
     59                daemon twistd  \\ 
     60                                --pidfile=$pidfile \\ 
     61                                --rundir=$rundir \\ 
     62                                --%(twistd_option)s=$file \\ 
     63                                --logfile=$logfile 
     64                status %(rpm_file)s 
     65                ;; 
    6566 
    66         stop) 
    67                 echo -n "Stopping %(rpm_file)s: twistd" 
    68                 kill `cat "${pidfile}"` 
    69                 status %(rpm_file)s 
    70                 ;; 
     67        stop) 
     68                echo -n "Stopping %(rpm_file)s: twistd" 
     69                kill `cat "${pidfile}"` 
     70                status %(rpm_file)s 
     71                ;; 
    7172 
    72         restart) 
    73                 "${0}" stop 
    74                 "${0}" start 
    75                 ;; 
     73        restart) 
     74                "${0}" stop 
     75                "${0}" start 
     76                ;; 
    7677 
    7778    *) 
    78                 echo "Usage: ${0} {start|stop|restart|}" >&2 
    79                 exit 1 
    80                 ;; 
     79                echo "Usage: ${0} {start|stop|restart|}" >&2 
     80                exit 1 
     81                ;; 
    8182esac 
    8283 
    8384exit 0 
     
    106107 
    107108%%install 
    108109[ ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != '/' ] \ 
    109                 && rm -rf "$RPM_BUILD_ROOT" 
     110                && rm -rf "$RPM_BUILD_ROOT" 
    110111mkdir -p "$RPM_BUILD_ROOT"/etc/twisted-taps 
    111112mkdir -p "$RPM_BUILD_ROOT"/etc/init.d 
    112113mkdir -p "$RPM_BUILD_ROOT"/var/lib/twisted-taps 
     
    115116 
    116117%%clean 
    117118[ ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != '/' ] \ 
    118                 && rm -rf "$RPM_BUILD_ROOT" 
     119                && rm -rf "$RPM_BUILD_ROOT" 
    119120 
    120121%%post 
    121122/sbin/chkconfig --add %(rpm_file)s 
     
    138139 
    139140############################### 
    140141class MyOptions(usage.Options): 
    141     optFlags = [["unsigned", "u"], ['quiet', 'q']] 
     142    optFlags = [['quiet', 'q']] 
    142143    optParameters = [ 
    143144                     ["tapfile", "t", "twistd.tap"], 
    144145                     ["maintainer", "m", "tap2rpm"], 
     
    176177        self['twistd_option'] = type_dict[self['type']] 
    177178        self['release-name'] = '%s-%s' % (self['rpmfile'], self['set-version']) 
    178179 
     180    def opt_unsigned(self): 
     181        """ 
     182        Handle the 'unsigned' command-line flag, which is now deprecated in 
     183        any case. 
     184        """ 
     185        msg = deprecate.getDeprecationWarningString( 
     186            self.opt_unsigned, versions.Version("Twisted", 12, 2, 0)) 
     187        warnings.warn(msg, category=DeprecationWarning, stacklevel=2) 
    179188 
     189    # Maintain the -u short flag 
     190    opt_u = opt_unsigned 
    180191 
     192 
    181193type_dict = { 
    182194    'tap': 'file', 
    183195    'python': 'python',