def test_GetLanguage():
    assert Utils.GetLanguage(['en_GB',]) == "en"
    assert Utils.GetLanguage(['en_US',]) == "en"
    assert Utils.GetLanguage(['fr_CA',]) == "fr"
    assert Utils.GetLanguage(['fr_FR',]) == "fr"
    assert Utils.GetLanguage(['it_IT',]) == "it"
    assert Utils.GetLanguage(['en',]) == "en"
    assert Utils.GetLanguage([None,None]) == "en"
Esempio n. 2
0
    def generatePPD(self):
        """Generates a PPD string for this printer."""
        defaultlocale = locale.getdefaultlocale()
        language, newlocale = Utils.GetLanguage(defaultlocale,
                                                self._cupsHelper)
        defaultpapertype = Utils.GetDefaultPaperType(newlocale)
        ppd = self._PPD_TEMPLATE_HEAD % {
            'language': language,
            'defaultpapertype': defaultpapertype,
            'ieee1284': self.getIEEE1284(),
            'ppdname': self.getPPDName()
        }
        if self['capabilities'] is not None:
            addedCapabilities = []
            for capability in self['capabilities']:
                originCapabilityName = None
                internalCapabilityName = \
                    self._getInternalName(capability, 'capability', None, addedCapabilities)
                addedCapabilities.append(internalCapabilityName)
                if 'displayName' in capability and len(
                        capability['displayName']) > 0:
                    originCapabilityName = self._sanitizeText(
                        capability['displayName'])
                elif 'psk:DisplayName' in capability and len(
                        capability['psk:DisplayName']) > 0:
                    originCapabilityName = self._sanitizeText(
                        capability['psk:DisplayName'])
                else:
                    originCapabilityName = self._sanitizeText(
                        capability['name'])
                if capability['type'] == 'Feature':
                    ppd += '*OpenUI *%s/%s: PickOne\n' % \
                        (internalCapabilityName, internalCapabilityName)
                    # translation of capability, allows use of 8
                    # bit chars
                    ppd += '*%s.Translation %s/%s: ""\n' % \
                        (language, internalCapabilityName, originCapabilityName)
                    addedOptions = []
                    for option in capability['options']:
                        originOptionName = None
                        if 'displayName' in option and len(
                                option['displayName']) > 0:
                            originOptionName = self._sanitizeText(
                                option['displayName'])
                        elif 'psk:DisplayName' in option and len(
                                option['psk:DisplayName']) > 0:
                            originOptionName = self._sanitizeText(
                                option['psk:DisplayName'])
                        else:
                            originOptionName = self._sanitizeText(
                                option['name'])
                        internalOptionName = self._getInternalName(
                            option, 'option', capability['name'], addedOptions)
                        addedOptions.append(internalOptionName)
                        if 'default' in option and option['default']:
                            ppd += '*Default%s: %s\n' % (
                                internalCapabilityName, internalOptionName)
                        ppd += '*%s %s:%s\n' % \
                            (internalCapabilityName, internalOptionName, internalOptionName)
                        # translation of option, allows use of 8
                        # bit chars
                        value = ''
                        if 'ppd:value' in option:
                            value = option['ppd:value']
                        ppd += '*%s.%s %s/%s: "%s"\n' % (
                            language, internalCapabilityName,
                            internalOptionName, originOptionName, value)

                    ppd += '*CloseUI: *%s\n' % internalCapabilityName

        ppd += self._PPD_TEMPLATE_FOOT
        return ppd
Esempio n. 3
0
def test_GetLanguage():
    assert Utils.GetLanguage(['en_GB', ]) == ("en", "en_GB")
    assert Utils.GetLanguage(['en_US', ]) == ("en", "en_US")
    assert Utils.GetLanguage(['fr_CA', ]) == ("fr", "fr_CA")
    assert Utils.GetLanguage(['fr_FR', ]) == ("fr", "fr_FR")
    assert Utils.GetLanguage(['it_IT', ]) == ("it", "it_IT")
    assert Utils.GetLanguage(['en', ]) == ("en", "en")
    assert Utils.GetLanguage([None, None]) == ("en", "en")

    # also test with helper
    helper = CUPSHelper()
    if helper.getServerSetting('DefaultLanguage') is not None:
        # if set
        locale = helper.getServerSetting('DefaultLanguage')
        lang = locale.split('_')[0]
        assert Utils.GetLanguage([None, None], helper) == (lang, locale)
        assert Utils.GetLanguage(['fr_CA', ], helper) == (lang, locale)
    else:
        # if not set
        assert Utils.GetLanguage([None, None], helper) == ("en", "en")
        assert Utils.GetLanguage(['fr_CA', ], helper) == ("fr", "fr_CA")