summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.zuul.yaml3
-rw-r--r--devstack/lib/heat33
-rw-r--r--heat/engine/stack.py5
-rw-r--r--heat/locale/de/LC_MESSAGES/heat.po7
-rw-r--r--heat/locale/es/LC_MESSAGES/heat.po7
-rw-r--r--heat/locale/fr/LC_MESSAGES/heat.po5
-rw-r--r--heat/locale/it/LC_MESSAGES/heat.po7
-rw-r--r--heat/locale/ja/LC_MESSAGES/heat.po6
-rw-r--r--heat/locale/ko_KR/LC_MESSAGES/heat.po5
-rw-r--r--heat/locale/pt_BR/LC_MESSAGES/heat.po5
-rw-r--r--heat/locale/ru/LC_MESSAGES/heat.po6
-rw-r--r--heat/locale/zh_CN/LC_MESSAGES/heat.po5
-rw-r--r--heat/locale/zh_TW/LC_MESSAGES/heat.po5
-rw-r--r--heat/tests/clients/test_aodh_client.py2
-rw-r--r--heat/tests/openstack/aodh/test_alarm.py6
-rw-r--r--heat/tests/test_convg_stack.py27
-rw-r--r--heat/tests/test_properties.py4
-rw-r--r--releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po12
-rw-r--r--setup.cfg1
-rw-r--r--tox.ini2
20 files changed, 65 insertions, 88 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index eae64e65e..967d3381d 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -21,8 +21,6 @@
- openstack/python-barbicanclient
- openstack/python-heatclient
- openstack/heat-agents
- - openstack/python-zaqarclient
- - openstack/zaqar
- openstack/tempest
vars:
configure_swap_size: 8192
@@ -41,7 +39,6 @@
tempest: true
devstack_plugins:
barbican: https://opendev.org/openstack/barbican
- zaqar: https://opendev.org/openstack/zaqar
heat: https://opendev.org/openstack/heat
octavia: https://opendev.org/openstack/octavia
devstack_local_conf:
diff --git a/devstack/lib/heat b/devstack/lib/heat
index 5f5f17252..d95e15266 100644
--- a/devstack/lib/heat
+++ b/devstack/lib/heat
@@ -452,26 +452,11 @@ function configure_tempest_for_heat {
openstack flavor show m1.heat_int || openstack flavor create m1.heat_int --ram 512 --disk 4
openstack flavor show m1.heat_micro || openstack flavor create m1.heat_micro --ram 128 --disk 1
- source $TOP_DIR/openrc demo demo
+ export OS_CLOUD=devstack
openstack network show heat-net || openstack network create heat-net
openstack subnet show heat-subnet || openstack subnet create heat-subnet --network heat-net --subnet-range 10.0.5.0/24
openstack router add subnet router1 heat-subnet
- iniset $TEMPEST_CONFIG heat_plugin username $OS_USERNAME
- iniset $TEMPEST_CONFIG heat_plugin password $OS_PASSWORD
- iniset $TEMPEST_CONFIG heat_plugin project_name $OS_PROJECT_NAME
- iniset $TEMPEST_CONFIG heat_plugin auth_url $OS_AUTH_URL
- iniset $TEMPEST_CONFIG heat_plugin user_domain_id $OS_USER_DOMAIN_ID
- iniset $TEMPEST_CONFIG heat_plugin project_domain_id $OS_PROJECT_DOMAIN_ID
- iniset $TEMPEST_CONFIG heat_plugin user_domain_name $OS_USER_DOMAIN_NAME
- iniset $TEMPEST_CONFIG heat_plugin project_domain_name $OS_PROJECT_DOMAIN_NAME
- iniset $TEMPEST_CONFIG heat_plugin region $OS_REGION_NAME
- iniset $TEMPEST_CONFIG heat_plugin auth_version $OS_IDENTITY_API_VERSION
-
- source $TOP_DIR/openrc admin admin
- iniset $TEMPEST_CONFIG heat_plugin admin_username $OS_USERNAME
- iniset $TEMPEST_CONFIG heat_plugin admin_password $OS_PASSWORD
-
# NOTE(ianw) OpenDev infra only keeps the latest two Fedora's
# around; prefer the mirror but allow fallback
if [[ -e /etc/ci/mirror_info.sh ]]; then
@@ -501,6 +486,22 @@ function configure_tempest_for_heat {
export OS_CREDENTIAL_SECRET_ID=$(openstack secret store -n heat-multi-cloud-test-cred --payload \
'{"auth_type": "v3applicationcredential", "auth": {"auth_url": $OS_AUTH_URL, "application_credential_id": $app_cred_id, "application_credential_secret": "secret"}}'\
-c "Secret href" -f value)
+ source $TOP_DIR/openrc demo demo
+ iniset $TEMPEST_CONFIG heat_plugin username $OS_USERNAME
+ iniset $TEMPEST_CONFIG heat_plugin password $OS_PASSWORD
+ iniset $TEMPEST_CONFIG heat_plugin project_name $OS_PROJECT_NAME
+ iniset $TEMPEST_CONFIG heat_plugin auth_url $OS_AUTH_URL
+ iniset $TEMPEST_CONFIG heat_plugin user_domain_id $OS_USER_DOMAIN_ID
+ iniset $TEMPEST_CONFIG heat_plugin project_domain_id $OS_PROJECT_DOMAIN_ID
+ iniset $TEMPEST_CONFIG heat_plugin user_domain_name $OS_USER_DOMAIN_NAME
+ iniset $TEMPEST_CONFIG heat_plugin project_domain_name $OS_PROJECT_DOMAIN_NAME
+ iniset $TEMPEST_CONFIG heat_plugin region $OS_REGION_NAME
+ iniset $TEMPEST_CONFIG heat_plugin auth_version $OS_IDENTITY_API_VERSION
+
+ source $TOP_DIR/openrc admin admin
+ iniset $TEMPEST_CONFIG heat_plugin admin_username $OS_USERNAME
+ iniset $TEMPEST_CONFIG heat_plugin admin_password $OS_PASSWORD
+ export OS_CLOUD=devstack-admin
}
# Restore xtrace
diff --git a/heat/engine/stack.py b/heat/engine/stack.py
index 3503c2f34..ec46e8ff4 100644
--- a/heat/engine/stack.py
+++ b/heat/engine/stack.py
@@ -1549,7 +1549,10 @@ class Stack(collections.abc.Mapping):
# Rolling back to previous resource
score += 10
- return score, ext_rsrc.updated_at
+ last_changed_at = ext_rsrc.updated_at
+ if last_changed_at is None:
+ last_changed_at = ext_rsrc.created_at
+ return score, last_changed_at
candidates = sorted((r for r in self.ext_rsrcs_db.values()
if r.name == rsrc_name),
diff --git a/heat/locale/de/LC_MESSAGES/heat.po b/heat/locale/de/LC_MESSAGES/heat.po
index 768b02e29..093a77d63 100644
--- a/heat/locale/de/LC_MESSAGES/heat.po
+++ b/heat/locale/de/LC_MESSAGES/heat.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -697,11 +697,6 @@ msgstr "Eine Liste der Sicherheitsgruppen für den Port."
msgid "A list of security services IDs or names."
msgstr "Eine Liste von IDs oder Namen von Sicherheitsdiensten."
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr ""
-"Eine Liste der anzuwendenden Zeichenfolgenrichtlinien. Standardmäßig Anti-"
-"Affinität."
-
msgid "A list of tags for labeling and sorting projects."
msgstr "Eine Liste von Tags zum Beschriften und Sortieren von Projekten."
diff --git a/heat/locale/es/LC_MESSAGES/heat.po b/heat/locale/es/LC_MESSAGES/heat.po
index ce7b06ec0..b3d422fa3 100644
--- a/heat/locale/es/LC_MESSAGES/heat.po
+++ b/heat/locale/es/LC_MESSAGES/heat.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -435,11 +435,6 @@ msgstr "Una lista de grupos de seguridad para el puerto."
msgid "A list of security services IDs or names."
msgstr "Una lista de ID o nombres de servicios de seguridad."
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr ""
-"Una lista de políticas de serie a aplicar. Valores predeterminados para anti-"
-"afinidad."
-
msgid "A login profile for the user."
msgstr "Perfil de inicio de sesión para el usuario."
diff --git a/heat/locale/fr/LC_MESSAGES/heat.po b/heat/locale/fr/LC_MESSAGES/heat.po
index 2d20f43de..a87f82a60 100644
--- a/heat/locale/fr/LC_MESSAGES/heat.po
+++ b/heat/locale/fr/LC_MESSAGES/heat.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -433,9 +433,6 @@ msgstr "Liste de groupes de sécurité pour le port."
msgid "A list of security services IDs or names."
msgstr "Liste des ID ou noms des services de sécurité."
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr "Liste de règles de chaîne à appliquer. Par défaut : anti-affinity."
-
msgid "A login profile for the user."
msgstr "Un profil de connexion pour l'utilisateur."
diff --git a/heat/locale/it/LC_MESSAGES/heat.po b/heat/locale/it/LC_MESSAGES/heat.po
index bfbefde22..73f636656 100644
--- a/heat/locale/it/LC_MESSAGES/heat.po
+++ b/heat/locale/it/LC_MESSAGES/heat.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -432,11 +432,6 @@ msgstr "Un elenco di gruppi di sicurezza per la porta."
msgid "A list of security services IDs or names."
msgstr "Un elenco di ID o nomi dei servizi di sicurezza."
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr ""
-"Un elenco di politiche stringa da applicare. L'impostazione predefinita è "
-"anti-affinity."
-
msgid "A login profile for the user."
msgstr "Un profilo di login per l'utente."
diff --git a/heat/locale/ja/LC_MESSAGES/heat.po b/heat/locale/ja/LC_MESSAGES/heat.po
index 7c00d654b..fb71e0127 100644
--- a/heat/locale/ja/LC_MESSAGES/heat.po
+++ b/heat/locale/ja/LC_MESSAGES/heat.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -418,10 +418,6 @@ msgstr "ポートのセキュリティーグループのリスト。"
msgid "A list of security services IDs or names."
msgstr "セキュリティーサービスの ID または名前のリスト。"
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr ""
-"適用する文字列ポリシーの一覧。アンチアフィニティーにデフォルト設定されます。"
-
msgid "A login profile for the user."
msgstr "ユーザーのログインプロファイル。"
diff --git a/heat/locale/ko_KR/LC_MESSAGES/heat.po b/heat/locale/ko_KR/LC_MESSAGES/heat.po
index 81afc9d15..9220f7b04 100644
--- a/heat/locale/ko_KR/LC_MESSAGES/heat.po
+++ b/heat/locale/ko_KR/LC_MESSAGES/heat.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -414,9 +414,6 @@ msgstr "포트의 보안 그룹 목록입니다."
msgid "A list of security services IDs or names."
msgstr "보안 서비스 ID 또는 이름 목록입니다."
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr "적용할 문자열 정책 목록입니다. 기본값은 안티 선호도입니다."
-
msgid "A login profile for the user."
msgstr "사용자의 로그인 프로파일입니다."
diff --git a/heat/locale/pt_BR/LC_MESSAGES/heat.po b/heat/locale/pt_BR/LC_MESSAGES/heat.po
index b27a5d44d..993846ba8 100644
--- a/heat/locale/pt_BR/LC_MESSAGES/heat.po
+++ b/heat/locale/pt_BR/LC_MESSAGES/heat.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -431,9 +431,6 @@ msgstr "Uma lista de grupos de segurança para a porta."
msgid "A list of security services IDs or names."
msgstr "Uma lista de IDs ou nomes de serviço de segurança."
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr "Uma lista de políticas de sequência a aplicar. Padrões antiafinidade."
-
msgid "A login profile for the user."
msgstr "Um perfil de login para o usuário."
diff --git a/heat/locale/ru/LC_MESSAGES/heat.po b/heat/locale/ru/LC_MESSAGES/heat.po
index d72a4c118..a17264dae 100644
--- a/heat/locale/ru/LC_MESSAGES/heat.po
+++ b/heat/locale/ru/LC_MESSAGES/heat.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -428,10 +428,6 @@ msgstr "Список групп защиты для порта."
msgid "A list of security services IDs or names."
msgstr "Список ИД или имен служб защиты."
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr ""
-"Список стратегий строк для применения. Значение по умолчанию: anti-affinity."
-
msgid "A login profile for the user."
msgstr "Профайл регистрации для пользователя."
diff --git a/heat/locale/zh_CN/LC_MESSAGES/heat.po b/heat/locale/zh_CN/LC_MESSAGES/heat.po
index c020221b9..0008a7e7e 100644
--- a/heat/locale/zh_CN/LC_MESSAGES/heat.po
+++ b/heat/locale/zh_CN/LC_MESSAGES/heat.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -394,9 +394,6 @@ msgstr "端口的安全组列表。"
msgid "A list of security services IDs or names."
msgstr "安全服务标识或名称的列表。"
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr "要应用的字符串策略列表。缺省为“反亲缘关系”。"
-
msgid "A login profile for the user."
msgstr "用户的登录概要文件。"
diff --git a/heat/locale/zh_TW/LC_MESSAGES/heat.po b/heat/locale/zh_TW/LC_MESSAGES/heat.po
index fbd8ed70f..f51016a3f 100644
--- a/heat/locale/zh_TW/LC_MESSAGES/heat.po
+++ b/heat/locale/zh_TW/LC_MESSAGES/heat.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2021-08-30 12:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:57+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -393,9 +393,6 @@ msgstr "埠的安全群組清單。"
msgid "A list of security services IDs or names."
msgstr "安全服務 ID 或名稱清單。"
-msgid "A list of string policies to apply. Defaults to anti-affinity."
-msgstr "要套用的字串原則清單。預設為反親緣性。"
-
msgid "A login profile for the user."
msgstr "使用者的登入設定檔。"
diff --git a/heat/tests/clients/test_aodh_client.py b/heat/tests/clients/test_aodh_client.py
index 42c0614d9..6cc6d45e9 100644
--- a/heat/tests/clients/test_aodh_client.py
+++ b/heat/tests/clients/test_aodh_client.py
@@ -10,6 +10,7 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+from testtools import testcase
from heat.tests import common
from heat.tests import utils
@@ -17,6 +18,7 @@ from heat.tests import utils
class AodhClientPluginTest(common.HeatTestCase):
+ @testcase.skip('skipped till python-aodhclient fixed for pyparsing 3.0.6')
def test_create(self):
context = utils.dummy_context()
plugin = context.clients.client_plugin('aodh')
diff --git a/heat/tests/openstack/aodh/test_alarm.py b/heat/tests/openstack/aodh/test_alarm.py
index cb5b6fb53..a75f2382c 100644
--- a/heat/tests/openstack/aodh/test_alarm.py
+++ b/heat/tests/openstack/aodh/test_alarm.py
@@ -391,12 +391,12 @@ class AodhAlarmTest(common.HeatTestCase):
resource_defns = stack.t.resource_definitions(stack)
rsrc = alarm.AodhAlarm(
'MEMAlarmHigh', resource_defns['MEMAlarmHigh'], stack)
- # python 3.4.3 returns another error message
- # so try to handle this by regexp
+ # python 3.4.3 and python3.10 return slightly different error
+ # messages, so try to handle this by regexp
msg = ("Property error: Resources.MEMAlarmHigh.Properties.%s: "
r"int\(\) argument must be a string"
"(, a bytes-like object)?"
- " or a number, not 'list'" % p)
+ " or a (real )?number, not 'list'" % p)
self.assertRaisesRegex(exception.StackValidationFailed,
msg, rsrc.validate)
diff --git a/heat/tests/test_convg_stack.py b/heat/tests/test_convg_stack.py
index 0db119781..c001af1e0 100644
--- a/heat/tests/test_convg_stack.py
+++ b/heat/tests/test_convg_stack.py
@@ -11,6 +11,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from datetime import datetime
+from datetime import timedelta
from unittest import mock
from oslo_config import cfg
@@ -429,22 +431,32 @@ class StackConvergenceCreateUpdateDeleteTest(common.HeatTestCase):
stack.prev_raw_template_id = 2
stack.t.id = 3
- def db_resource(current_template_id):
+ def db_resource(current_template_id,
+ created_at=None,
+ updated_at=None):
db_res = resource_objects.Resource(stack.context)
db_res['id'] = current_template_id
db_res['name'] = 'A'
db_res['current_template_id'] = current_template_id
- db_res['action'] = 'CREATE'
+ db_res['action'] = 'UPDATE' if updated_at else 'CREATE'
db_res['status'] = 'COMPLETE'
- db_res['updated_at'] = None
+ db_res['updated_at'] = updated_at
+ db_res['created_at'] = created_at
db_res['replaced_by'] = None
return db_res
+ start_time = datetime.utcfromtimestamp(0)
+
+ def t(minutes):
+ return start_time + timedelta(minutes=minutes)
+
a_res_2 = db_resource(2)
a_res_3 = db_resource(3)
- a_res_1 = db_resource(1)
+ a_res_0 = db_resource(0, created_at=t(0), updated_at=t(1))
+ a_res_1 = db_resource(1, created_at=t(2))
existing_res = {a_res_2.id: a_res_2,
a_res_3.id: a_res_3,
+ a_res_0.id: a_res_0,
a_res_1.id: a_res_1}
stack.ext_rsrcs_db = existing_res
best_res = stack._get_best_existing_rsrc_db('A')
@@ -460,9 +472,14 @@ class StackConvergenceCreateUpdateDeleteTest(common.HeatTestCase):
# no resource with current template id as 3 or 2
del existing_res[2]
best_res = stack._get_best_existing_rsrc_db('A')
- # should return resource with template id 1 existing in DB
+ # should return resource with template id 1 which is the newest
self.assertEqual(a_res_1.id, best_res.id)
+ del existing_res[1]
+ best_res = stack._get_best_existing_rsrc_db('A')
+ # should return resource with template id 0 existing in the db
+ self.assertEqual(a_res_0.id, best_res.id)
+
@mock.patch.object(parser.Stack, '_converge_create_or_update')
def test_updated_time_stack_create(self, mock_ccu, mock_cr):
stack = parser.Stack(utils.dummy_context(), 'convg_updated_time_test',
diff --git a/heat/tests/test_properties.py b/heat/tests/test_properties.py
index 97f8a8027..8e780f73e 100644
--- a/heat/tests/test_properties.py
+++ b/heat/tests/test_properties.py
@@ -783,12 +783,12 @@ class PropertyTest(common.HeatTestCase):
def test_int_bad(self):
schema = {'Type': 'Integer'}
p = properties.Property(schema)
- # python 3.4.3 returns another error message
+ # python 3.4.3 and python3.10 return slightly different error messages
# try to handle this by regexp
self.assertRaisesRegex(
TypeError, r"int\(\) argument must be a string"
"(, a bytes-like object)?"
- " or a number, not 'list'", p.get_value, [1])
+ " or a (real )?number, not 'list'", p.get_value, [1])
def test_str_from_int(self):
schema = {'Type': 'String'}
diff --git a/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po b/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
index 0dceb183c..68b70f458 100644
--- a/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
+++ b/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: openstack-heat\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 09:34+0000\n"
+"POT-Creation-Date: 2021-11-01 17:53+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -58,9 +58,6 @@ msgstr "13.0.0"
msgid "13.0.1"
msgstr "13.0.1"
-msgid "13.1.0-12"
-msgstr "13.1.0-12"
-
msgid "14.0.0"
msgstr "14.0.0"
@@ -70,15 +67,12 @@ msgstr "14.2.0"
msgid "15.0.0"
msgstr "15.0.0"
-msgid "15.0.0-18"
-msgstr "15.0.0-18"
+msgid "15.0.0-21"
+msgstr "15.0.0-21"
msgid "16.0.0"
msgstr "16.0.0"
-msgid "17.0.0.0rc1"
-msgstr "17.0.0.0rc1"
-
msgid "5.0.1"
msgstr "5.0.1"
diff --git a/setup.cfg b/setup.cfg
index f66ec65dc..27ecf6225 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -18,6 +18,7 @@ classifier =
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
[files]
data_files =
diff --git a/tox.ini b/tox.ini
index d50ea095d..bac5a4ca5 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py36,py37,py38,pep8
+envlist = py36,py37,py38,py39,pep8
ignore_basepython_conflict = True
minversion = 3.1.0
skipsdist = True