tor-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
January 2020
- 19 participants
- 1596 discussions

06 Jan '20
commit b062e0f0a4046724e349b92a3edf79141320422e
Author: Neel Chauhan <neel(a)neelc.org>
Date: Fri Dec 20 14:11:03 2019 -0500
Fix spacing in tor_sscanf() call in tor_inet_aton()
---
src/lib/net/inaddr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/net/inaddr.c b/src/lib/net/inaddr.c
index 79529c047..a655ca6ad 100644
--- a/src/lib/net/inaddr.c
+++ b/src/lib/net/inaddr.c
@@ -39,7 +39,7 @@ tor_inet_aton(const char *str, struct in_addr *addr)
{
unsigned a,b,c,d;
char more;
- if (tor_sscanf(str, "%3u.%3u.%3u.%3u%c", &a,&b,&c,&d,&more) != 4)
+ if (tor_sscanf(str, "%3u.%3u.%3u.%3u%c", &a, &b, &c, &d, &more) != 4)
return 0;
if (a > 255) return 0;
if (b > 255) return 0;
1
0

[translation/donatepages-messagespot] https://gitweb.torproject.org/translation.git/commit/?h=donatepages-messagespot
by translation@torproject.org 06 Jan '20
by translation@torproject.org 06 Jan '20
06 Jan '20
commit 0cccb8bfc2d9513abce75797ff3167ea820cc933
Author: Translation commit bot <translation(a)torproject.org>
Date: Mon Jan 6 12:45:36 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=donatepages-message…
---
locale/pt_BR/LC_MESSAGES/messages.po | 203 ++++++++++++++++++++++++++++++-----
1 file changed, 176 insertions(+), 27 deletions(-)
diff --git a/locale/pt_BR/LC_MESSAGES/messages.po b/locale/pt_BR/LC_MESSAGES/messages.po
index fcbdf2bada..bb5e4ae725 100644
--- a/locale/pt_BR/LC_MESSAGES/messages.po
+++ b/locale/pt_BR/LC_MESSAGES/messages.po
@@ -5,18 +5,18 @@
# André Almeida <andrefalmeida(a)protonmail.com>, 2018
# blueboy, 2018
# Joeffison Silvério de Andrade <joeffison(a)gmail.com>, 2018
-# dark crystal <darc.krystal(a)insicuri.net>, 2018
-# Eduardo Bonsi, 2018
# nilson t. c., 2018
-# Emma Peel, 2019
# C. E., 2019
# Communia <ameaneantie(a)riseup.net>, 2019
# erinm, 2019
-# Eduardo Addad de Oliveira <eduardoaddad(a)hotmail.com>, 2019
+# Eduardo Bonsi, 2019
+# Emma Peel, 2019
+# dark crystal <darc.krystal(a)insicuri.net>, 2019
+# Eduardo Addad de Oliveira <eduardoaddad(a)hotmail.com>, 2020
#
msgid ""
msgstr ""
-"Last-Translator: Eduardo Addad de Oliveira <eduardoaddad(a)hotmail.com>, 2019\n"
+"Last-Translator: Eduardo Addad de Oliveira <eduardoaddad(a)hotmail.com>, 2020\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/otf/teams/1519/pt_BR/)\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -236,7 +236,7 @@ msgstr "Você deseja doar usando cartão de crédito ou Paypal?"
#: tmp/cache_locale/ef/ef5649de7f8cead2eb5ba30c5d2afbe4e1ea84df12773fd2513ca8f8823e3fbc.php:70
msgid ""
"Thanks for your interest in donating cryptocurrency to the Tor Project."
-msgstr ""
+msgstr "Agradecemos o seu interesse em doar criptomoedas ao Projeto Tor."
#: tmp/cache_locale/ef/ef5649de7f8cead2eb5ba30c5d2afbe4e1ea84df12773fd2513ca8f8823e3fbc.php:77
#: tmp/cache_locale/cc/cc2e1dd4edb96c59a6514d676ca3f562a2a9a2cd34e2c211c03fb08b3e664469.php:133
@@ -726,7 +726,7 @@ msgstr "camiseta"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:226
msgid "Get our limited edition Tor: Strength in Numbers shirt."
-msgstr ""
+msgstr "Receba nossa edição limitada Tor: camiseta Força em Números."
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:237
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:258
@@ -739,18 +739,24 @@ msgid ""
"the Digital Resistance, Open Observatory of Network Interference (OONI), or "
"Tor at the Heart of Internet Freedom t-shirts."
msgstr ""
+"Camisetas Our Tor: Strength in Numbers, mais um dos nossos Tor: Powering "
+"the Digital Resistanceno Coração da liberdade da Internet, Open Observatory "
+"of Network Interference (OONI), ou camisetas do Tor at the Heart of Internet"
+" Freedom."
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:253
msgid "Tor at the Heart of Internet Freedom"
-msgstr ""
+msgstr "Tor no coração da liberdade na Internet"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:257
msgid "Powering the Digital Resistance"
-msgstr ""
+msgstr "Promovendo a Resistência Digital"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:261
msgid "Open Observatory of Network Interference"
msgstr ""
+"Open Observatory of Network Interference (Observatório Aberto de "
+"Interferência de Rede) - OONI"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:272
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:277
@@ -765,7 +771,7 @@ msgstr ""
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:289
msgid "how do you want to <span class=\"green\">DONATE</span>?"
-msgstr ""
+msgstr "Como você quer <span class=\"green\">DOAR</span>?"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:295
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:300
@@ -774,7 +780,7 @@ msgstr "Cartão de Crédito"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:304
msgid "Want to donate Bitcoin, Stock, or via snail mail?"
-msgstr ""
+msgstr "Você quer doar Bitcoin, Stocks ou através do correio tradicional? "
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:315
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:314
@@ -871,7 +877,7 @@ msgstr "Doar"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:453
msgid "Gift Selected"
-msgstr ""
+msgstr "Presente selecionado"
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:457
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:464
@@ -969,11 +975,13 @@ msgid ""
"Stand up for the universal human rights to privacy and freedom and help keep"
" Tor robust and secure."
msgstr ""
+"Defenda os direitos humanos universais à privacidade e liberdade e ajude a "
+"manter o Tor robusto e seguro."
#: tmp/cache_locale/c7/c763c19bb6abb9330294c550c8241bb3874e3b4e17fb6e7b15db26c60df8d5fe.php:616
#: tmp/cache_locale/9f/9f870858aaf6c5a7c94ea6a959618fbe485cbfd16174993d34a8e370a4567526.php:84
msgid "Mozilla will match your gift and double your impact."
-msgstr ""
+msgstr "A Mozilla duplicará o seu dom e o seu impacto."
#: tmp/cache_locale/b5/b5f4f095d469d66a47aef1a351e119240dbf0291056fdb85b216534a25e91fef.php:40
#: tmp/cache_locale/08/08a9b06344a88c9ea01db4cdf9711c9cee305183a512ae0e8b7381dae8c6d798.php:22
@@ -1051,6 +1059,10 @@ msgid ""
"making it easier for third-party developers to integrate Tor into their "
"applications."
msgstr ""
+"Com o seu apoio, poderemos nos dedicar a projetos mais ambiciosos, como o "
+"desenvolvimento de um navegador mais seguro e que proteja mais a privacidade"
+" de nossos usuários em aparelhos celulares; e como tornar mais fácil a "
+"integração de Tor em aplicativos de outros desenvolvedores."
#: tmp/cache_locale/af/afda2fbd22ed389453e63ca9acc074a25ce820b5bc97120edfd975cf8f46634a.php:71
#: tmp/cache_locale/12/12677df2d2a5991edb775c6909b7be7ca718fd00abd6950a809cda5ab878d2ce.php:76
@@ -1066,6 +1078,8 @@ msgid ""
"Tell family, friends, and colleagues that you're supporting privacy and "
"security with Tor!"
msgstr ""
+" Conte para sua família, amigos e colegas que você está apoiando a "
+"privacidade e a segurança com o Tor! "
#: tmp/cache_locale/a1/a1384b9a21e3d43e946972b01389567dff845ee982dcf05228aa3e5096a74210.php:59
#: tmp/cache_locale/84/843b15891cb1c4a052da0edfef1988434048191530bcfe390199ff0e33e802d4.php:41
@@ -1227,45 +1241,51 @@ msgid ""
"links\" href=\"https://2019.www.torproject.org/donate/donate.html.en\" "
"target=\"_blank\">credit card or PayPal, please click here.</a>"
msgstr ""
+"Nota: se você deseja doar para o Projeto Tor <a class=\"hyperlinks links\" "
+"href=\"https://2019.www.torproject.org/donate/donate.html.en\" "
+"target=\"_blank\">cartão de crédito ou PayPal, por favor clique aqui.</a>"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:95
msgid ""
"The Tor Project also offers the following alternative donation methods:"
msgstr ""
+"O Projeto Tor também oferece os seguintes métodos alternativos de doação:"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:102
msgid "Bitcoin and Other Cryptocurrencies"
-msgstr ""
+msgstr "Bitcoin e outras criptomoedas"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:108
msgid "BTCPayServer"
-msgstr ""
+msgstr "BTCPayServer"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:112
msgid "BottlePay"
-msgstr ""
+msgstr "BottlePay"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:116
msgid "Amazon Smile"
-msgstr ""
+msgstr "Amazon Smile"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:120
msgid "Giving Assistant"
-msgstr ""
+msgstr "Assistente de doação"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:126
msgid "EU Bank Transfer"
-msgstr ""
+msgstr "EU Bank Transfer"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:132
msgid ""
"Checks</a> or <a class=\"hyperlinks links\" href=\"/%langcode%/donor-faq"
"#donate-anonymous\">Money Orders</a>"
msgstr ""
+"Verifique </a> ou <a class=\"hyperlinks links\" href=\"/%langcode%/donor-faq"
+"#donate-anonymous\">Ordens de pagamento</a>"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:138
msgid "Stock Donation"
-msgstr ""
+msgstr "Doação de ações"
#: tmp/cache_locale/7d/7d56367a61f987367eeb2a89d0c6db83fd0801cce86278bf7e99ed39b5b46254.php:143
msgid ""
@@ -2705,14 +2725,14 @@ msgstr "Doar Agora"
#: tmp/cache_locale/2c/2c32942b896dd845bd6204d3104922983a843d726e231446ff21ddb2a33f6cda.php:29
#: tmp/cache_locale/2c/2c32942b896dd845bd6204d3104922983a843d726e231446ff21ddb2a33f6cda.php:52
msgid "Donate to the Tor Project and protect the privacy of millions."
-msgstr ""
+msgstr "Doe para o Projeto Tor e proteja a privacidade de milhões de pessoas."
#: tmp/cache_locale/66/666e9197f427d70c0743bcdae2c3e34f41f9d7acf2b2dddb2c21c21723e73d10.php:54
#: tmp/cache_locale/66/666e9197f427d70c0743bcdae2c3e34f41f9d7acf2b2dddb2c21c21723e73d10.php:77
#: tmp/cache_locale/2c/2c32942b896dd845bd6204d3104922983a843d726e231446ff21ddb2a33f6cda.php:31
#: tmp/cache_locale/2c/2c32942b896dd845bd6204d3104922983a843d726e231446ff21ddb2a33f6cda.php:54
msgid "Anonymity loves company."
-msgstr ""
+msgstr "Anonimidade adora companhia "
#: tmp/cache_locale/66/666e9197f427d70c0743bcdae2c3e34f41f9d7acf2b2dddb2c21c21723e73d10.php:109
msgid ""
@@ -2727,6 +2747,9 @@ msgid ""
"continue our mission to provide tools that protect peoples privacy and "
"identity online."
msgstr ""
+"O Projeto Tor conta com o apoio de nossos Defensores de Privacidade para "
+"continuar nossa missão de fornecer ferramentas que protejam a privacidade e "
+"a identidade das pessoas on-line."
#: tmp/cache_locale/17/179dc1a0f488d5bbb8c128dc5c0fb35d6240d83414df10335a1cf4031139609a.php:53
msgid "Tor State Nonprofit Disclosures"
@@ -2809,6 +2832,13 @@ msgid ""
"href=\"https://www.state.nj.us/lps/ca/charfrm.htm\" target=\"_blank\" "
"class=\"hyperlinks links\">www.state.nj.us/lps/ca/charfrm.htm</a>."
msgstr ""
+"As informações arquivadas com o procurador-geral sobre esta solicitação de "
+"caridade e a porcentagem de contribuições recebidas pela instituição de "
+"caridade durante o último período do relatório dedicado ao objetivo de "
+"caridade podem ser obtidas junto ao procurador-geral do estado de Nova "
+"Jersey, ligando para (973) 504 -6215 e está disponível na internet em <a "
+"href=\"https://www.state.nj.us/lps/ca/charfrm.htm\" target=\"_blank\" "
+"class=\"hyperlinks links\">www.state.nj.us/lps/ca/charfrm.htm</a>."
#: tmp/cache_locale/17/179dc1a0f488d5bbb8c128dc5c0fb35d6240d83414df10335a1cf4031139609a.php:115
msgid "Registration with the attorney general does not imply endorsement."
@@ -2942,6 +2972,11 @@ msgid ""
"supporting their unrestricted availability and use, and furthering their "
"scientific and popular understanding."
msgstr ""
+"A missão do Projeto Tor é proteger os direitos humanos e liberdades por meio"
+" da criação e implementação de tecnologias de anonimato e privacidade livres"
+" e de código aberto, provendo apoio a seu uso e disponibilidade irrestritos."
+" Ao mesmo tempo, contribuímos para o avanço de sua compreensão científica e "
+"popular. "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:72
msgid ""
@@ -2949,12 +2984,17 @@ msgid ""
"href=\"https://www.torproject.org/download/download-easy.html.en\">Tor "
"Browser</a>, which enables people to browse the internet anonymously."
msgstr ""
+"O principal produto do Projeto Tor é o <a href=\"https://www.torproject.org"
+"/pt-BR/download/\">Navegador Tor</a>, que permite que as pessoas naveguem "
+"pela internet anonimamente. "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:74
msgid ""
"The Tor Project is a 501(c)3 tax-exempt non-profit organization based in "
"Boston, Massachusetts."
msgstr ""
+"O Projeto Tor é uma organização sem fins lucrativos do tipo 501(c)3, isenta "
+"de impostos, com sede em Boston, Massachusetts. "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:113
msgid ""
@@ -2962,6 +3002,9 @@ msgid ""
"href=\"https://www.torproject.org/projects/torbrowser.html.en\"><span "
"class=\"links\">download Tor Browser</span></a>."
msgstr ""
+"Para começar, você precisará <a class=\"hyperlinks\" target=\"_blank\" "
+"href=\"https://www.torproject.org/projects/torbrowser.html.en\"><span "
+"class=\"links\">baixar o Navegador Tor</span></a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:115
msgid ""
@@ -2973,6 +3016,13 @@ msgid ""
"OS X</a> and <a class=\"hyperlinks links\" target=\"_blank\" "
"href=\"https://www.torproject.org/projects/torbrowser.html.en#linux\">Linux</a>."
msgstr ""
+"Nós oferecemos instruções de como baixar para o <a class=\"hyperlinks "
+"links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/projects/torbrowser.html.en#windows\">Windows</a>,"
+" <a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/projects/torbrowser.html.en#macosx\">Mac "
+"OS X</a> e <a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/projects/torbrowser.html.en#linux\">Linux</a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:127
msgid ""
@@ -2984,12 +3034,22 @@ msgid ""
"Federal Foreign Office of Germany, the U.S. Naval Research Laboratory, "
"Omidyar Network, SRI International, and Radio Free Asia."
msgstr ""
+"Milhares de pessoas já doaram para apoiar o Projeto Tor, e nós também "
+"recebemos financiamento de vários tipos de organizações, incluindo a Google,"
+" Ford Foundation, Knight Foundation, Reddit, a U.S. National Science "
+"Foundation, a Electronic Frontier Foundation, Human Rights Watch, a Swedish "
+"International Development Cooperation Agency, o Federal Foreign Office of "
+"Germany, o U.S. Naval Research Laboratory, Omidyar Network, SRI "
+"International, e a Radio Free Asia."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:129
msgid ""
"People also support Tor in non-financial ways, for example by running Tor "
"relays to help carry traffic for other users."
msgstr ""
+"As pessoas também apoiam o Tor de outras maneiras, não financeiras. Por "
+"exemplo, rodando relés do Tor para ajudar a transportar o tráfego de outros "
+"usuários. "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:147
msgid ""
@@ -2997,6 +3057,9 @@ msgid ""
"target=\"_blank\" "
"href=\"https://www.torproject.org/about/overview.html.en\">overview page."
msgstr ""
+"Você pode ler mais sobre como o Tor funciona em nossa <a class=\"hyperlinks "
+"links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/about/overview.html.en\">página geral."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:158
msgid ""
@@ -3004,6 +3067,9 @@ msgid ""
"href=\"https://www.torproject.org/docs/faq.html.en\">This Tor Project "
"FAQ</a> has answers to all those questions, and more."
msgstr ""
+"<a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/docs/faq.html.en\">Esse FAQ do Projeto "
+"Tor</a>tem respostas para todas essas perguntas, e mais. "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:172
msgid ""
@@ -3014,6 +3080,13 @@ msgid ""
"book Data and Goliath, security expert Bruce Schneier wrote \"The current "
"best tool to protect your anonymity when browsing the web is Tor.\""
msgstr ""
+"A Electronic Frontier Foundation afirma que o Tor oferece <a "
+"class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.eff.org/deeplinks/2014/07/7-things-you-should-know-about-"
+"tor\">um dos programas mais fortes de anonimato que existem</a>, e em seu "
+"livro Data and Goliath, o especialista em segurança Bruce Schneier escreveu "
+"\"A melhor ferramenta atual para proteger o seu anonimato ao navegar na web "
+"é o Tor\". "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:200
msgid ""
@@ -3021,6 +3094,9 @@ msgid ""
"href=\"https://www.torproject.org/about/financials.html.en\">financial "
"statements, and its Form 990</a>."
msgstr ""
+"Aqui estão as <a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/about/financials.html.en\">declarações "
+"financeiras e o Formulário 990</a>do Projeto Tor. "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:212
msgid ""
@@ -3028,20 +3104,26 @@ msgid ""
"href=\"https://www.torproject.org/about/sponsors.html.en\">https://www.torproject.org/about/sponsors</a>"
" for more.)"
msgstr ""
+"(Veja <a class=\"hyperlinks links single-link\" target=\"_blank\" "
+"href=\"https://www.torproject.org/about/sponsors.html.en\">https://www.torproject.org/about/sponsors</a>"
+" para mais informações.)"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:228
msgid "The Tor Project spends about $4 million annually."
-msgstr ""
+msgstr "O Projeto Tor gasta cerca de US$4 milhões anualmente. "
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:306
msgid ""
"In past years, some people couldn't complete the donation process, and one "
"person had their PayPal account temporarily frozen."
msgstr ""
+"Nos últimos anos, algumas pessoas não conseguiram concluir o processo de "
+"doação e uma pessoa teve a sua conta do PayPal temporariamente congelada."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:308
msgid "If you run into any problems donating via PayPal, please let us know."
msgstr ""
+"Se você tiver algum problema ao doar via PayPal, por favor, nos avise."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:318
msgid ""
@@ -3049,12 +3131,18 @@ msgid ""
"Discover or American Express) or via PayPal, please visit our <a "
"href=\"https://donate.torproject.org\">donate page</a>."
msgstr ""
+"Para doar usando um cartão de crédito ou de débito (VISA, Mastercard, "
+"Discover ou American Express) ou via PayPal, por favor, visite a nossa<a "
+"href=\"https://donate.torproject.org\">página de doações</a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:344
msgid ""
"These people typically use a very small amount for their testing, and we've "
"found that setting a $1 minimum donation seems to deter them."
msgstr ""
+"Essas pessoas normalmente usam uma quantidade muito pequena para o teste, e "
+"assim, descobrimos que definir uma doação mínima de US $1 parece dissuadi-"
+"las."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:354
msgid ""
@@ -3063,10 +3151,15 @@ msgid ""
"research, test, and implement ideas we have for making the Tor network even "
"stronger."
msgstr ""
+"Não, não e não! Porém, mais fundos vindo de você significa que podemos fazer"
+" mais coisas na qual estamos muito empolgados para fazer, assim como, "
+"contratar uma pessoa para monitorar a rede Tor em tempo integral ou "
+"pesquisar, testar e implementar as ideias que temos, para tornar a rede Tor "
+"ainda mais forte."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:360
msgid "Can I donate via bitcoin?"
-msgstr ""
+msgstr "Posso doar via bitcoin?"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:364
msgid ""
@@ -3074,6 +3167,9 @@ msgid ""
"href=\"https://www.torproject.org/donate/donate-options.html.en\">bitcoin "
"via BitPay</a>."
msgstr ""
+"Sim! Nós aceitamos <a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/donate/donate-options.html.en\">bitcoin "
+"via BitPay</a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:374
msgid ""
@@ -3081,18 +3177,25 @@ msgid ""
"href=\"https://www.torproject.org/donate/donate-"
"options.html.en#cash\">sending us a postal money order</a>."
msgstr ""
+"Você pode doar <a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/donate/donate-options.html.en#cash"
+"\">enviando-nos um vale postal.</a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:376
msgid ""
"You can donate via bitcoin if you have bitcoin set up in a way that "
"preserves your anonymity."
msgstr ""
+"Você pode doar via Bitcoin se tiver Bitcoin configurado de uma maneira que "
+"preserve o seu anonimato."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:380
msgid ""
"There are probably other ways to donate anonymously that we haven't thought "
"of-- maybe you will :)"
msgstr ""
+"Provavelmente existem outras maneiras de doar anonimamente, nas quais não "
+"pensamos - mas talvez você tenha pensado :)"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:391
msgid ""
@@ -3100,12 +3203,18 @@ msgid ""
"required to report the donation amount and your name and address (if we have"
" it) to the IRS, on Schedule B of the Form 990, which is filed annually."
msgstr ""
+"Se você doar US $5.000 ou mais para o Projeto Tor em um único ano, seremos "
+"obrigados a informar o valor da doação com seu nome e endereço (se "
+"precisarmos) ao IRS, no Anexo B do Formulário 990, que é preenchido "
+"anualmente."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:397
msgid ""
"(Also, if you wanted, you could give us $4,999 in late 2018 and $4,999 in "
"early 2019.)"
msgstr ""
+"(No entanto, se você quiser, poderá nos doar US $4.999 no final de 2018 e US"
+" $4.999 no início de 2019;)"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:429
msgid ""
@@ -3113,6 +3222,9 @@ msgid ""
"different country, let us know and we will try to offer tax-deductibility in"
" your country in future."
msgstr ""
+"Se for importante para você que as suas doações sejam dedutíveis de impostos"
+" em um outro país, avise-nos e nós tentaremos oferecer deduções de impostos "
+"em seu país no futuro."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:431
msgid ""
@@ -3122,12 +3234,19 @@ msgid ""
"organizations support the Tor network</a> and may be able to offer you tax-"
"deductibility for your donation."
msgstr ""
+"Ou, se você estiver na Alemanha, França ou Suécia, <a class=\"hyperlinks "
+"links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/docs/faq.html.en#RelayDonations\">essas "
+"organizações apoiam a rede Tor</a> e podem oferecer dedutibilidade fiscal "
+"para sua doação."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:437
msgid ""
"What if I don't want to use credit card or PayPal? Is there another way I "
"can donate?"
msgstr ""
+"E se eu não quiser usar o cartão de crédito ou o PayPal? Existe outra "
+"maneira de doar?"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:441
msgid ""
@@ -3135,16 +3254,21 @@ msgid ""
"options.html.en\" class=\"hyperlinks links\" target=\"_blank\">other ways "
"you can donate.</a>"
msgstr ""
+"Sim! Aqui está uma lista de<a href=\"https://www.torproject.org/donate"
+"/donate-options.html.en\" class=\"hyperlinks links\" "
+"target=\"_blank\">outras maneiras de doar.</a>"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:480
msgid ""
"Our mailing address is The Tor Project, 217 First Avenue South #4903, "
"Seattle WA 98194, USA"
msgstr ""
+"O nosso endereço para correspondência é: Tor Project, 217 First Avenue South"
+" #4903, Seattle WA 98194, USA"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:490
msgid "Yes"
-msgstr ""
+msgstr "Sim"
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:502
msgid ""
@@ -3153,12 +3277,19 @@ msgid ""
" <a class=\"hyperlinks links\" target=\"_blank\" "
"href=\"https://www.matchinggifts.com/rit/\">https://www.matchinggifts.com/rit/</a>."
msgstr ""
+"Em geral, maneira mais rápida de descobrir se a sua empresa duplica doações "
+"é verificando o departamento de RH ou pesquisando o nome da sua empresa em,"
+" <a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.matchinggifts.com/rit/\">https://www.matchinggifts.com/rit/</a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:504
msgid ""
"If your company isn't currently set up to match donations to the Tor "
"Project, we would be happy to help with the paperwork."
msgstr ""
+"Se, atualmente, a sua empresa não estiver preparada para duplicar as doações"
+" (financiamento misto) ao Projeto Tor, ficaremos felizes em ajudar com a sua"
+" documentação."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:518
msgid ""
@@ -3167,6 +3298,10 @@ msgid ""
"href=\"https://www.torproject.org/getinvolved/volunteer.html.en\">this is a "
"good place to start</a>."
msgstr ""
+"Se você quiser se envolver com o Projeto Tor, <a class=\"hyperlinks links\" "
+"target=\"_blank\" "
+"href=\"https://www.torproject.org/getinvolved/volunteer.html.en\">este é um "
+"bom lugar para começar</a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:528
msgid ""
@@ -3174,14 +3309,18 @@ msgid ""
"stickers, are presented on our main <a "
"href=\"https://donate.torproject.org\">donation page</a>."
msgstr ""
+"Uma variedade de presentes de agradecimentos para pessoas doadoras, "
+"incluindo camisetas, moleton de capuz e adesivos, são apresentados na nossa"
+" de <a href=\"https://donate.torproject.org\">página de "
+"doações</a>principal ."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:548
msgid "No, Tor doesn't currently participate in the CFC program."
-msgstr ""
+msgstr "Não, o Tor não participa atualmente do programa CFC."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:572
msgid "Typically no, we don't encourage people to donate hardware."
-msgstr ""
+msgstr "Normalmente, nós não encorajamos ninguém a doar hardware."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:574
msgid ""
@@ -3189,6 +3328,9 @@ msgid ""
"especially useful for us, please mail <span "
"class=\"email\">giving(at)torproject.org</span>."
msgstr ""
+"Mas, se você quiser fazer uma doação de hardware que você acha que poderá "
+"ser especialmente útil para nós, por favor, enviem-nos um email para <span "
+"class=\"email\">giving(at)torproject.org</span>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:586
msgid ""
@@ -3196,6 +3338,9 @@ msgid ""
"href=\"https://www.torproject.org/getinvolved/volunteer.html.en\">list of "
"areas where we would love your help</a>."
msgstr ""
+"Aqui está <a class=\"hyperlinks links\" target=\"_blank\" "
+"href=\"https://www.torproject.org/getinvolved/volunteer.html.en\">uma lista "
+"das áreas em que gostaríamos da sua ajuda.</a>."
#: tmp/cache_locale/0e/0e65c68f2900f432bc062864e7bafc989d6286e272f5e98882a99f52ea4c5c89.php:602
msgid ""
@@ -3204,6 +3349,10 @@ msgid ""
"href=\"https://www.torproject.org/docs/faq.html.en#HowDoIDecide\">operate a "
"Tor relay</a>."
msgstr ""
+"Talvez a sua empresa esteja disposta a <a class=\"hyperlinks links\" "
+"target=\"_blank\" "
+"href=\"https://www.torproject.org/docs/faq.html.en#HowDoIDecide\"> operar um"
+" relé do Tor.</a>."
#: tmp/cache_locale/02/023cc9edfe6c60b72788b97f6a123fde6020d003845e03b26b572d864d6eb3de.php:83
msgid ""
1
0
commit 796089d28debb1c4f6d4ee645214e3fc61068a12
Author: Damian Johnson <atagar(a)torproject.org>
Date: Thu Jan 2 11:59:34 2020 -0800
Update copyright dates for 2020
Happy new year! Bumping the dates for 2020...
% find . -type f -iname '*.py' -exec sed -i 's/-2019/-2020/g' "{}" +;
% grep -R "# Copyright 2019," ./*
---
nyx/__init__.py | 2 +-
nyx/arguments.py | 2 +-
nyx/curses.py | 2 +-
nyx/log.py | 2 +-
nyx/menu.py | 2 +-
nyx/panel/__init__.py | 2 +-
nyx/panel/config.py | 2 +-
nyx/panel/connection.py | 2 +-
nyx/panel/graph.py | 2 +-
nyx/panel/header.py | 2 +-
nyx/panel/interpreter.py | 2 +-
nyx/panel/log.py | 2 +-
nyx/panel/torrc.py | 2 +-
nyx/popups.py | 2 +-
nyx/starter.py | 2 +-
nyx/tracker.py | 2 +-
run_tests.py | 2 +-
setup.py | 2 +-
18 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/nyx/__init__.py b/nyx/__init__.py
index ce57b63..67053aa 100644
--- a/nyx/__init__.py
+++ b/nyx/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2009-2019, Damian Johnson and The Tor Project
+# Copyright 2009-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/arguments.py b/nyx/arguments.py
index 33e1ed4..cf1aa18 100644
--- a/nyx/arguments.py
+++ b/nyx/arguments.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019, Damian Johnson and The Tor Project
+# Copyright 2013-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/curses.py b/nyx/curses.py
index 9f998b0..98b1d11 100644
--- a/nyx/curses.py
+++ b/nyx/curses.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2019, Damian Johnson and The Tor Project
+# Copyright 2010-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/log.py b/nyx/log.py
index d534867..c6d3bea 100644
--- a/nyx/log.py
+++ b/nyx/log.py
@@ -1,4 +1,4 @@
-# Copyright 2014-2019, Damian Johnson and The Tor Project
+# Copyright 2014-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/menu.py b/nyx/menu.py
index 846c552..9c18793 100644
--- a/nyx/menu.py
+++ b/nyx/menu.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/__init__.py b/nyx/panel/__init__.py
index 6aead81..57ae1e3 100644
--- a/nyx/panel/__init__.py
+++ b/nyx/panel/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2019, Damian Johnson and The Tor Project
+# Copyright 2010-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/config.py b/nyx/panel/config.py
index 40d318c..77ec090 100644
--- a/nyx/panel/config.py
+++ b/nyx/panel/config.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2019, Damian Johnson and The Tor Project
+# Copyright 2010-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/connection.py b/nyx/panel/connection.py
index 167ad7b..a97d28f 100644
--- a/nyx/panel/connection.py
+++ b/nyx/panel/connection.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index 65ca961..61607b9 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2019, Damian Johnson and The Tor Project
+# Copyright 2010-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/header.py b/nyx/panel/header.py
index 370f3ee..e30b940 100644
--- a/nyx/panel/header.py
+++ b/nyx/panel/header.py
@@ -1,4 +1,4 @@
-# Copyright 2009-2019, Damian Johnson and The Tor Project
+# Copyright 2009-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/interpreter.py b/nyx/panel/interpreter.py
index 2687888..8b83c19 100644
--- a/nyx/panel/interpreter.py
+++ b/nyx/panel/interpreter.py
@@ -1,4 +1,4 @@
-# Copyright 2016-2019, Damian Johnson and The Tor Project
+# Copyright 2016-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/log.py b/nyx/panel/log.py
index d3caf01..76dd20c 100644
--- a/nyx/panel/log.py
+++ b/nyx/panel/log.py
@@ -1,4 +1,4 @@
-# Copyright 2009-2019, Damian Johnson and The Tor Project
+# Copyright 2009-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/panel/torrc.py b/nyx/panel/torrc.py
index bd848a1..8f4a530 100644
--- a/nyx/panel/torrc.py
+++ b/nyx/panel/torrc.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2019, Damian Johnson and The Tor Project
+# Copyright 2010-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/popups.py b/nyx/popups.py
index 8122d90..19ab353 100644
--- a/nyx/popups.py
+++ b/nyx/popups.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/starter.py b/nyx/starter.py
index 919141e..75f0f64 100644
--- a/nyx/starter.py
+++ b/nyx/starter.py
@@ -1,4 +1,4 @@
-# Copyright 2009-2019, Damian Johnson and The Tor Project
+# Copyright 2009-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/nyx/tracker.py b/nyx/tracker.py
index f6880d2..53de63c 100644
--- a/nyx/tracker.py
+++ b/nyx/tracker.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019, Damian Johnson and The Tor Project
+# Copyright 2013-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/run_tests.py b/run_tests.py
index 5612609..4c7f73d 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-# Copyright 2013-2019, Damian Johnson and The Tor Project
+# Copyright 2013-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/setup.py b/setup.py
index dacf880..7e9b996 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-# Copyright 2010-2019, Damian Johnson and The Tor Project
+# Copyright 2010-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import setuptools
1
0

05 Jan '20
commit 9082fe1e15b1f5995743b28db4e70223054eb2e5
Author: Damian Johnson <atagar(a)torproject.org>
Date: Fri Jan 3 14:08:00 2020 -0800
Test interpreter using our python version
Our interpreter's integ tests did not provide a python executable while
shelling out, and as such used our default python version rather than the
one we're testing against.
---
test/integ/interpreter.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/test/integ/interpreter.py b/test/integ/interpreter.py
index dc8466be..e3664d87 100644
--- a/test/integ/interpreter.py
+++ b/test/integ/interpreter.py
@@ -3,6 +3,7 @@ Tests invocation of our interpreter.
"""
import os
+import sys
import tempfile
import unittest
@@ -16,9 +17,9 @@ PROMPT_CMD = os.path.join(test.STEM_BASE, 'tor-prompt')
def _run_prompt(*args):
if test.runner.Torrc.SOCKET not in test.runner.get_runner().get_options():
- return stem.util.system.call([PROMPT_CMD, '--interface', test.runner.CONTROL_PORT] + list(args))
+ return stem.util.system.call([sys.executable, PROMPT_CMD, '--interface', test.runner.CONTROL_PORT] + list(args))
else:
- return stem.util.system.call([PROMPT_CMD, '--socket', test.runner.CONTROL_SOCKET_PATH] + list(args))
+ return stem.util.system.call([sys.executable, PROMPT_CMD, '--socket', test.runner.CONTROL_SOCKET_PATH] + list(args))
class TestInterpreter(unittest.TestCase):
1
0
commit 4fd458d4debf2444023de9f745ce726f84da79cf
Author: Damian Johnson <atagar(a)torproject.org>
Date: Thu Jan 2 11:33:40 2020 -0800
Stem development version tag
As always, flagging our git codebase with a '-dev' version suffix.
---
stem/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/stem/__init__.py b/stem/__init__.py
index 68f772f9..9f30b785 100644
--- a/stem/__init__.py
+++ b/stem/__init__.py
@@ -507,7 +507,7 @@ import traceback
import stem.util
import stem.util.enum
-__version__ = '1.8.0'
+__version__ = '1.8.0-dev'
__author__ = 'Damian Johnson'
__contact__ = 'atagar(a)torproject.org'
__url__ = 'https://stem.torproject.org/'
1
0
commit e9b2536859b86eed554618e6b41ba1442a994d4b
Author: Damian Johnson <atagar(a)torproject.org>
Date: Thu Jan 2 11:35:10 2020 -0800
Update copyright dates for 2020
Happy new year! Bumping the dates for 2020...
% find . -type f -iname '*.py' -exec sed -i 's/-2019/-2020/g' "{}" +;
% grep -R "# Copyright 2019," ./*
---
cache_fallback_directories.py | 2 +-
cache_manual.py | 2 +-
run_tests.py | 2 +-
setup.py | 2 +-
stem/__init__.py | 2 +-
stem/client/__init__.py | 2 +-
stem/client/cell.py | 2 +-
stem/client/datatype.py | 2 +-
stem/connection.py | 2 +-
stem/control.py | 2 +-
stem/descriptor/__init__.py | 2 +-
stem/descriptor/bandwidth_file.py | 2 +-
stem/descriptor/certificate.py | 2 +-
stem/descriptor/collector.py | 2 +-
stem/descriptor/export.py | 2 +-
stem/descriptor/extrainfo_descriptor.py | 2 +-
stem/descriptor/hidden_service.py | 2 +-
stem/descriptor/microdescriptor.py | 2 +-
stem/descriptor/networkstatus.py | 2 +-
stem/descriptor/reader.py | 2 +-
stem/descriptor/remote.py | 2 +-
stem/descriptor/router_status_entry.py | 2 +-
stem/descriptor/server_descriptor.py | 2 +-
stem/descriptor/tordnsel.py | 2 +-
stem/directory.py | 2 +-
stem/exit_policy.py | 2 +-
stem/interpreter/__init__.py | 2 +-
stem/interpreter/arguments.py | 2 +-
stem/interpreter/autocomplete.py | 2 +-
stem/interpreter/commands.py | 2 +-
stem/interpreter/help.py | 2 +-
stem/manual.py | 2 +-
stem/prereq.py | 2 +-
stem/process.py | 2 +-
stem/response/__init__.py | 2 +-
stem/response/add_onion.py | 2 +-
stem/response/authchallenge.py | 2 +-
stem/response/events.py | 2 +-
stem/response/getconf.py | 2 +-
stem/response/getinfo.py | 2 +-
stem/response/mapaddress.py | 2 +-
stem/response/protocolinfo.py | 2 +-
stem/socket.py | 2 +-
stem/util/__init__.py | 2 +-
stem/util/conf.py | 2 +-
stem/util/connection.py | 2 +-
stem/util/enum.py | 2 +-
stem/util/log.py | 2 +-
stem/util/proc.py | 2 +-
stem/util/str_tools.py | 2 +-
stem/util/system.py | 2 +-
stem/util/term.py | 2 +-
stem/util/test_tools.py | 2 +-
stem/util/tor_tools.py | 2 +-
stem/version.py | 2 +-
test/__init__.py | 2 +-
test/arguments.py | 2 +-
test/network.py | 2 +-
test/output.py | 2 +-
test/require.py | 2 +-
test/runner.py | 2 +-
test/task.py | 2 +-
62 files changed, 62 insertions(+), 62 deletions(-)
diff --git a/cache_fallback_directories.py b/cache_fallback_directories.py
index 05d7f827..cb413c07 100755
--- a/cache_fallback_directories.py
+++ b/cache_fallback_directories.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-# Copyright 2016-2019, Damian Johnson and The Tor Project
+# Copyright 2016-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/cache_manual.py b/cache_manual.py
index 8e198226..7fe6ea70 100755
--- a/cache_manual.py
+++ b/cache_manual.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/run_tests.py b/run_tests.py
index a3a90d04..8d7ea45e 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/setup.py b/setup.py
index dd487558..8b6f1e4b 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
#
# Release Checklist
diff --git a/stem/__init__.py b/stem/__init__.py
index 9f30b785..66bc24b5 100644
--- a/stem/__init__.py
+++ b/stem/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/client/__init__.py b/stem/client/__init__.py
index 76b5addc..307bd4e4 100644
--- a/stem/client/__init__.py
+++ b/stem/client/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2018-2019, Damian Johnson and The Tor Project
+# Copyright 2018-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/client/cell.py b/stem/client/cell.py
index 4b0f9fa1..57a71749 100644
--- a/stem/client/cell.py
+++ b/stem/client/cell.py
@@ -1,4 +1,4 @@
-# Copyright 2018-2019, Damian Johnson and The Tor Project
+# Copyright 2018-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/client/datatype.py b/stem/client/datatype.py
index ac417b83..5de5e445 100644
--- a/stem/client/datatype.py
+++ b/stem/client/datatype.py
@@ -1,4 +1,4 @@
-# Copyright 2018-2019, Damian Johnson and The Tor Project
+# Copyright 2018-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/connection.py b/stem/connection.py
index 90997fb9..140cff2e 100644
--- a/stem/connection.py
+++ b/stem/connection.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/control.py b/stem/control.py
index 42736486..56567467 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/__init__.py b/stem/descriptor/__init__.py
index 49a4d4b5..c97db183 100644
--- a/stem/descriptor/__init__.py
+++ b/stem/descriptor/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/bandwidth_file.py b/stem/descriptor/bandwidth_file.py
index 9fd44859..658f02b8 100644
--- a/stem/descriptor/bandwidth_file.py
+++ b/stem/descriptor/bandwidth_file.py
@@ -1,4 +1,4 @@
-# Copyright 2019, Damian Johnson and The Tor Project
+# Copyright 2019-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/certificate.py b/stem/descriptor/certificate.py
index fe94b52d..28a05181 100644
--- a/stem/descriptor/certificate.py
+++ b/stem/descriptor/certificate.py
@@ -1,4 +1,4 @@
-# Copyright 2017-2019, Damian Johnson and The Tor Project
+# Copyright 2017-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/collector.py b/stem/descriptor/collector.py
index 3ee0e1aa..c2bf8179 100644
--- a/stem/descriptor/collector.py
+++ b/stem/descriptor/collector.py
@@ -1,4 +1,4 @@
-# Copyright 2019, Damian Johnson and The Tor Project
+# Copyright 2019-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/export.py b/stem/descriptor/export.py
index e7b465bf..48699ca4 100644
--- a/stem/descriptor/export.py
+++ b/stem/descriptor/export.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/extrainfo_descriptor.py b/stem/descriptor/extrainfo_descriptor.py
index d55b8eef..17082f88 100644
--- a/stem/descriptor/extrainfo_descriptor.py
+++ b/stem/descriptor/extrainfo_descriptor.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/hidden_service.py b/stem/descriptor/hidden_service.py
index 01f8b96f..e5f82861 100644
--- a/stem/descriptor/hidden_service.py
+++ b/stem/descriptor/hidden_service.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/microdescriptor.py b/stem/descriptor/microdescriptor.py
index de125f65..81bcb43c 100644
--- a/stem/descriptor/microdescriptor.py
+++ b/stem/descriptor/microdescriptor.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019, Damian Johnson and The Tor Project
+# Copyright 2013-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/networkstatus.py b/stem/descriptor/networkstatus.py
index cd65da9e..1cab602c 100644
--- a/stem/descriptor/networkstatus.py
+++ b/stem/descriptor/networkstatus.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/reader.py b/stem/descriptor/reader.py
index 32ec39fa..b4cc4279 100644
--- a/stem/descriptor/reader.py
+++ b/stem/descriptor/reader.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py
index 82634513..c88b338e 100644
--- a/stem/descriptor/remote.py
+++ b/stem/descriptor/remote.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019, Damian Johnson and The Tor Project
+# Copyright 2013-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/router_status_entry.py b/stem/descriptor/router_status_entry.py
index 91f2c146..cf1c52f5 100644
--- a/stem/descriptor/router_status_entry.py
+++ b/stem/descriptor/router_status_entry.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index 9c29164b..1d9adf32 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/descriptor/tordnsel.py b/stem/descriptor/tordnsel.py
index 8a651864..d0f57b93 100644
--- a/stem/descriptor/tordnsel.py
+++ b/stem/descriptor/tordnsel.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019, Damian Johnson and The Tor Project
+# Copyright 2013-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/directory.py b/stem/directory.py
index 8139a935..b93b49a2 100644
--- a/stem/directory.py
+++ b/stem/directory.py
@@ -1,4 +1,4 @@
-# Copyright 2018-2019, Damian Johnson and The Tor Project
+# Copyright 2018-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/exit_policy.py b/stem/exit_policy.py
index 76d75e55..ddaf719c 100644
--- a/stem/exit_policy.py
+++ b/stem/exit_policy.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/interpreter/__init__.py b/stem/interpreter/__init__.py
index a4911a65..bd623120 100644
--- a/stem/interpreter/__init__.py
+++ b/stem/interpreter/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/interpreter/arguments.py b/stem/interpreter/arguments.py
index 99c38795..00c8891d 100644
--- a/stem/interpreter/arguments.py
+++ b/stem/interpreter/arguments.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/interpreter/autocomplete.py b/stem/interpreter/autocomplete.py
index a08a34fb..b6c5354c 100644
--- a/stem/interpreter/autocomplete.py
+++ b/stem/interpreter/autocomplete.py
@@ -1,4 +1,4 @@
-# Copyright 2014-2019, Damian Johnson and The Tor Project
+# Copyright 2014-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/interpreter/commands.py b/stem/interpreter/commands.py
index fe0e1341..0f8f333c 100644
--- a/stem/interpreter/commands.py
+++ b/stem/interpreter/commands.py
@@ -1,4 +1,4 @@
-# Copyright 2014-2019, Damian Johnson and The Tor Project
+# Copyright 2014-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/interpreter/help.py b/stem/interpreter/help.py
index 8b3b9964..d2e08d5c 100644
--- a/stem/interpreter/help.py
+++ b/stem/interpreter/help.py
@@ -1,4 +1,4 @@
-# Copyright 2014-2019, Damian Johnson and The Tor Project
+# Copyright 2014-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/manual.py b/stem/manual.py
index 5b502a4d..25d435d4 100644
--- a/stem/manual.py
+++ b/stem/manual.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/prereq.py b/stem/prereq.py
index 4af6c093..5e8e89dc 100644
--- a/stem/prereq.py
+++ b/stem/prereq.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/process.py b/stem/process.py
index 80824bdc..4ed10dfb 100644
--- a/stem/process.py
+++ b/stem/process.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/response/__init__.py b/stem/response/__init__.py
index d90061b8..1a5b2b45 100644
--- a/stem/response/__init__.py
+++ b/stem/response/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/response/add_onion.py b/stem/response/add_onion.py
index d60e0d24..64d58282 100644
--- a/stem/response/add_onion.py
+++ b/stem/response/add_onion.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import stem.response
diff --git a/stem/response/authchallenge.py b/stem/response/authchallenge.py
index 6dd07b52..d9cc5491 100644
--- a/stem/response/authchallenge.py
+++ b/stem/response/authchallenge.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import binascii
diff --git a/stem/response/events.py b/stem/response/events.py
index 8b819315..e634a5d6 100644
--- a/stem/response/events.py
+++ b/stem/response/events.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import io
diff --git a/stem/response/getconf.py b/stem/response/getconf.py
index 35501767..6de49b1f 100644
--- a/stem/response/getconf.py
+++ b/stem/response/getconf.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import stem.response
diff --git a/stem/response/getinfo.py b/stem/response/getinfo.py
index c7379a9b..0b9766ba 100644
--- a/stem/response/getinfo.py
+++ b/stem/response/getinfo.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import stem.response
diff --git a/stem/response/mapaddress.py b/stem/response/mapaddress.py
index 47647d35..73ed84f1 100644
--- a/stem/response/mapaddress.py
+++ b/stem/response/mapaddress.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import stem.response
diff --git a/stem/response/protocolinfo.py b/stem/response/protocolinfo.py
index 7cb216ce..1763e59f 100644
--- a/stem/response/protocolinfo.py
+++ b/stem/response/protocolinfo.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
import sys
diff --git a/stem/socket.py b/stem/socket.py
index 8303fd06..26e8f22e 100644
--- a/stem/socket.py
+++ b/stem/socket.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/__init__.py b/stem/util/__init__.py
index eb4e0618..5be29777 100644
--- a/stem/util/__init__.py
+++ b/stem/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/conf.py b/stem/util/conf.py
index 80399810..b4580ed9 100644
--- a/stem/util/conf.py
+++ b/stem/util/conf.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/connection.py b/stem/util/connection.py
index 5bfb1024..bd1fb5a2 100644
--- a/stem/util/connection.py
+++ b/stem/util/connection.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/enum.py b/stem/util/enum.py
index 9e9d2228..76a52a55 100644
--- a/stem/util/enum.py
+++ b/stem/util/enum.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/log.py b/stem/util/log.py
index 92e76258..e8d61c1d 100644
--- a/stem/util/log.py
+++ b/stem/util/log.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/proc.py b/stem/util/proc.py
index de357eff..f0e0104f 100644
--- a/stem/util/proc.py
+++ b/stem/util/proc.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/str_tools.py b/stem/util/str_tools.py
index 869f46b6..58effbee 100644
--- a/stem/util/str_tools.py
+++ b/stem/util/str_tools.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/system.py b/stem/util/system.py
index c04eb673..0d2262f5 100644
--- a/stem/util/system.py
+++ b/stem/util/system.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/term.py b/stem/util/term.py
index 48ab1e23..5554bf6c 100644
--- a/stem/util/term.py
+++ b/stem/util/term.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/test_tools.py b/stem/util/test_tools.py
index 36c88f6a..c7dce7ce 100644
--- a/stem/util/test_tools.py
+++ b/stem/util/test_tools.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/util/tor_tools.py b/stem/util/tor_tools.py
index b703fa50..8987635e 100644
--- a/stem/util/tor_tools.py
+++ b/stem/util/tor_tools.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/stem/version.py b/stem/version.py
index c13db22c..6bf0befe 100644
--- a/stem/version.py
+++ b/stem/version.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/test/__init__.py b/test/__init__.py
index fa9678af..3e84a0cc 100644
--- a/test/__init__.py
+++ b/test/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/test/arguments.py b/test/arguments.py
index a871b4e5..65434b8b 100644
--- a/test/arguments.py
+++ b/test/arguments.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2019, Damian Johnson and The Tor Project
+# Copyright 2015-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/test/network.py b/test/network.py
index f1b33676..5072c5b6 100644
--- a/test/network.py
+++ b/test/network.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/test/output.py b/test/output.py
index 92a47ac3..efd27b56 100644
--- a/test/output.py
+++ b/test/output.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/test/require.py b/test/require.py
index ca5fe3ea..8bdea06b 100644
--- a/test/require.py
+++ b/test/require.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/test/runner.py b/test/runner.py
index d8adb585..d6a0d561 100644
--- a/test/runner.py
+++ b/test/runner.py
@@ -1,4 +1,4 @@
-# Copyright 2011-2019, Damian Johnson and The Tor Project
+# Copyright 2011-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
diff --git a/test/task.py b/test/task.py
index 272c4ddf..1fbcf9a4 100644
--- a/test/task.py
+++ b/test/task.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2019, Damian Johnson and The Tor Project
+# Copyright 2012-2020, Damian Johnson and The Tor Project
# See LICENSE for licensing information
"""
1
0

05 Jan '20
commit 983afa8a67e8ef013ff8c03afbd75d0219ea1188
Author: Damian Johnson <atagar(a)torproject.org>
Date: Fri Jan 3 15:32:58 2020 -0800
Drop 'GETINFO status/fresh-relay-descs' test
This test fails ~30% of the time because tor has not yet determined its
address...
https://trac.torproject.org/projects/tor/ticket/32873
We can reintroduce this test if the test or getinfo command can be more
reliable.
---
test/integ/control/controller.py | 22 ----------------------
1 file changed, 22 deletions(-)
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index a32f66f0..428f516e 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -256,28 +256,6 @@ class TestController(unittest.TestCase):
self.assertEqual({}, controller.get_info([], {}))
@test.require.controller
- def test_getinfo_freshrelaydescs(self):
- """
- Exercises 'GETINFO status/fresh-relay-descs'.
- """
-
- with test.runner.get_runner().get_tor_controller() as controller:
- response = controller.get_info('status/fresh-relay-descs')
- div = response.find('\nextra-info ')
- nickname = controller.get_conf('Nickname')
-
- if div == -1:
- self.fail('GETINFO response should have both a server and extrainfo descriptor:\n%s' % response)
-
- server_desc = stem.descriptor.server_descriptor.ServerDescriptor(response[:div], validate = True)
- extrainfo_desc = stem.descriptor.extrainfo_descriptor.ExtraInfoDescriptor(response[div:], validate = True)
-
- self.assertEqual(nickname, server_desc.nickname)
- self.assertEqual(nickname, extrainfo_desc.nickname)
- self.assertEqual(controller.get_info('address'), server_desc.address)
- self.assertEqual(test.runner.ORPORT, server_desc.or_port)
-
- @test.require.controller
@test.require.online
def test_getinfo_dir_status(self):
"""
1
0

05 Jan '20
commit fb35e3f68477611b39729125e0ae0b3d6d6cfe82
Author: Damian Johnson <atagar(a)torproject.org>
Date: Fri Jan 3 14:13:22 2020 -0800
tor-prompt requires the readline module
When compiling Python ourselves several modules (most notably compression) are
unavailable by default. Turns out readline is one of those, so we cannot assume
it is always present...
======================================================================
ERROR: test_running_command
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1329, in call
raise OSError('%s returned exit status %i' % (command, exit_status))
OSError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', 'GETINFO config-file'] returned exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/test/require.py", line 58, in wrapped
return func(self, *args, **kwargs)
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 36, in test_running_command
self.assertEqual(expected, _run_prompt('--run', 'GETINFO config-file'))
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 20, in _run_prompt
return stem.util.system.call([sys.executable, PROMPT_CMD, '--interface', test.runner.CONTROL_PORT] + list(args))
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1348, in call
raise CallError(str(exc), ' '.join(command_list), exit_status, runtime, stdout, stderr)
stem.util.system.CallError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', 'GETINFO config-file'] returned exit status 1
======================================================================
ERROR: test_running_file
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1329, in call
raise OSError('%s returned exit status %i' % (command, exit_status))
OSError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', '/tmp/test_commands.wmb8rcb8'] returned exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/test/require.py", line 58, in wrapped
return func(self, *args, **kwargs)
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 56, in test_running_file
self.assertEqual(expected, _run_prompt('--run', tmp.name))
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 20, in _run_prompt
return stem.util.system.call([sys.executable, PROMPT_CMD, '--interface', test.runner.CONTROL_PORT] + list(args))
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1348, in call
raise CallError(str(exc), ' '.join(command_list), exit_status, runtime, stdout, stderr)
stem.util.system.CallError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', '/tmp/test_commands.wmb8rcb8'] returned exit status 1
---
stem/interpreter/__init__.py | 6 +++++-
test/integ/interpreter.py | 14 ++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/stem/interpreter/__init__.py b/stem/interpreter/__init__.py
index bd623120..30af3f62 100644
--- a/stem/interpreter/__init__.py
+++ b/stem/interpreter/__init__.py
@@ -44,7 +44,11 @@ def msg(message, config, **attr):
def main():
- import readline
+ try:
+ import readline
+ except ImportError:
+ print('tor-prompt requires the readline module')
+ sys.exit(1)
import stem.interpreter.arguments
import stem.interpreter.autocomplete
diff --git a/test/integ/interpreter.py b/test/integ/interpreter.py
index e3664d87..65d03fd3 100644
--- a/test/integ/interpreter.py
+++ b/test/integ/interpreter.py
@@ -12,6 +12,14 @@ import test
import test.require
import test.runner
+try:
+ # when compiled ourselves the readline module might be unavailable
+
+ import readline
+ READLINE_AVAILABLE = True
+except ImportError:
+ READLINE_AVAILABLE = False
+
PROMPT_CMD = os.path.join(test.STEM_BASE, 'tor-prompt')
@@ -31,6 +39,9 @@ class TestInterpreter(unittest.TestCase):
if test.runner.Torrc.PASSWORD in test.runner.get_runner().get_options():
self.skipTest('password auth unsupported')
return
+ elif not READLINE_AVAILABLE:
+ self.skipTest('readline unavailable')
+ return
expected = ['250-config-file=%s' % test.runner.get_runner().get_torrc_path(), '250 OK']
self.assertEqual(expected, _run_prompt('--run', 'GETINFO config-file'))
@@ -40,6 +51,9 @@ class TestInterpreter(unittest.TestCase):
if test.runner.Torrc.PASSWORD in test.runner.get_runner().get_options():
self.skipTest('password auth unsupported')
return
+ elif not READLINE_AVAILABLE:
+ self.skipTest('readline unavailable')
+ return
expected = [
'250-config-file=%s' % test.runner.get_runner().get_torrc_path(),
1
0
commit c73023efe24891fac4ed32ce78e2630d1caeaabc
Author: Damian Johnson <atagar(a)torproject.org>
Date: Thu Jan 2 11:47:22 2020 -0800
Require Python 3.6 to run tests
Now that the PSF has removed Python 2.x support we are as well...
https://www.python.org/doc/sunset-python-2/
Stem 2.x will require Python 3.x, but what version? Python 3.5 is EOL in a few
months (prior to our next release)...
https://devguide.python.org/#status-of-python-branches
So the question is 3.6 or 3.7? I'm not yet aware of a reason to pick 3.7 so for
the moment picking 3.6. This might change if we strongly desire a 3.7 feature
as we work on this branch.
https://docs.python.org/3/whatsnew/3.7.html
---
stem/prereq.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/stem/prereq.py b/stem/prereq.py
index 5e8e89dc..480f070c 100644
--- a/stem/prereq.py
+++ b/stem/prereq.py
@@ -46,8 +46,8 @@ def check_requirements():
major_version, minor_version = sys.version_info[0:2]
- if major_version < 2 or (major_version == 2 and minor_version < 6):
- raise ImportError('stem requires python version 2.6 or greater')
+ if major_version < 3 or (major_version == 3 and minor_version < 6):
+ raise ImportError('stem requires python version 3.6 or greater')
def _is_python_26():
1
0
commit 551fbde4845a78d3b0f885202dbd171d54d660aa
Author: Damian Johnson <atagar(a)torproject.org>
Date: Fri Jan 3 14:40:55 2020 -0800
Drop is_python_26 checks
Python 2.6 specific code paths are now obsolete. This is most notable within
our tests because we can now use skipTest() without an extra return statement.
No doubt these tests can simplify more, but beginning with the low hanging
fruit.
---
stem/client/datatype.py | 23 --------------
stem/descriptor/export.py | 2 +-
stem/prereq.py | 16 ----------
stem/util/__init__.py | 6 +---
stem/util/test_tools.py | 44 ++-------------------------
test/integ/connection/authentication.py | 1 -
test/integ/control/base_controller.py | 2 --
test/integ/control/controller.py | 4 ---
test/integ/descriptor/collector.py | 1 -
test/integ/descriptor/extrainfo_descriptor.py | 2 +-
test/integ/descriptor/microdescriptor.py | 2 +-
test/integ/descriptor/networkstatus.py | 8 ++---
test/integ/descriptor/server_descriptor.py | 2 +-
test/integ/directory/fallback.py | 1 -
test/integ/installation.py | 4 +--
test/integ/interpreter.py | 4 ---
test/integ/manual.py | 23 +++++---------
test/integ/util/connection.py | 2 --
test/integ/util/proc.py | 1 -
test/integ/util/system.py | 8 -----
test/unit/descriptor/collector.py | 3 --
test/unit/descriptor/compression.py | 1 -
test/unit/descriptor/export.py | 8 -----
test/unit/descriptor/reader.py | 3 --
test/unit/descriptor/remote.py | 2 --
test/unit/installation.py | 2 --
test/unit/manual.py | 4 ---
test/unit/tutorial_examples.py | 7 -----
28 files changed, 21 insertions(+), 165 deletions(-)
diff --git a/stem/client/datatype.py b/stem/client/datatype.py
index 5de5e445..367074b2 100644
--- a/stem/client/datatype.py
+++ b/stem/client/datatype.py
@@ -390,29 +390,6 @@ class Size(Field):
raise NotImplementedError("Use our constant's unpack() and pop() instead")
def pack(self, content):
- # TODO: Python 2.6's struct module behaves a little differently in a couple
- # respsects...
- #
- # * Invalid types raise a TypeError rather than a struct.error.
- #
- # * Negative values are happily packed despite being unsigned fields with
- # a message printed to stdout (!) that says...
- #
- # stem/client/datatype.py:362: DeprecationWarning: struct integer overflow masking is deprecated
- # packed = struct.pack(self.format, content)
- # stem/client/datatype.py:362: DeprecationWarning: 'B' format requires 0 <= number <= 255
- # packed = struct.pack(self.format, content)
- #
- # Rather than adjust this method to account for these differences doing
- # duplicate upfront checks just for python 2.6. When we drop 2.6 support
- # this can obviously be dropped.
-
- if stem.prereq._is_python_26():
- if not stem.util._is_int(content):
- raise ValueError('Size.pack encodes an integer, but was a %s' % type(content).__name__)
- elif content < 0:
- raise ValueError('Packed values must be positive (attempted to pack %i as a %s)' % (content, self.name))
-
# TODO: When we drop python 2.x support this can be simplified via
# integer's to_bytes() method. For example...
#
diff --git a/stem/descriptor/export.py b/stem/descriptor/export.py
index 48699ca4..fea681be 100644
--- a/stem/descriptor/export.py
+++ b/stem/descriptor/export.py
@@ -103,7 +103,7 @@ def export_csv_file(output_file, descriptors, included_fields = (), excluded_fie
writer = csv.DictWriter(output_file, included_fields, dialect = _ExportDialect(), extrasaction='ignore')
- if header and not stem.prereq._is_python_26():
+ if header:
writer.writeheader()
for desc in descriptors:
diff --git a/stem/prereq.py b/stem/prereq.py
index 0de2191e..d748c2ab 100644
--- a/stem/prereq.py
+++ b/stem/prereq.py
@@ -50,22 +50,6 @@ def check_requirements():
raise ImportError('stem requires python version 3.6 or greater')
-def _is_python_26():
- """
- Checks if we're running python 2.6. This isn't for users as it'll be removed
- in stem 2.0 (when python 2.6 support goes away).
-
- .. deprecated:: 1.8.0
- Stem 2.x will remove this method along with Python 2.x support.
-
- :returns: **True** if we're running python 2.6, **False** otherwise
- """
-
- major_version, minor_version = sys.version_info[0:2]
-
- return major_version == 2 and minor_version == 6
-
-
def is_python_27():
"""
Checks if we're running python 2.7 or above (including the 3.x series).
diff --git a/stem/util/__init__.py b/stem/util/__init__.py
index 5be29777..226f5fbf 100644
--- a/stem/util/__init__.py
+++ b/stem/util/__init__.py
@@ -120,11 +120,7 @@ def datetime_to_unix(timestamp):
:returns: **float** for the unix timestamp of the given datetime object
"""
- if stem.prereq._is_python_26():
- delta = (timestamp - datetime.datetime(1970, 1, 1))
- return delta.days * 86400 + delta.seconds
- else:
- return (timestamp - datetime.datetime(1970, 1, 1)).total_seconds()
+ return (timestamp - datetime.datetime(1970, 1, 1)).total_seconds()
def _pubkey_bytes(key):
diff --git a/stem/util/test_tools.py b/stem/util/test_tools.py
index c7dce7ce..02d3dd89 100644
--- a/stem/util/test_tools.py
+++ b/stem/util/test_tools.py
@@ -56,15 +56,6 @@ ASYNC_TESTS = {}
AsyncStatus = stem.util.enum.UppercaseEnum('PENDING', 'RUNNING', 'FINISHED')
AsyncResult = collections.namedtuple('AsyncResult', 'type msg')
-# TODO: Providing a copy of SkipTest that works with python 2.6. This will be
-# dropped when we remove python 2.6 support.
-
-if stem.prereq._is_python_26():
- class SkipTest(Exception):
- 'Notes that the test was skipped.'
-else:
- SkipTest = unittest.case.SkipTest
-
def assert_equal(expected, actual, msg = None):
"""
@@ -111,7 +102,7 @@ def skip(msg):
:raises: **unittest.case.SkipTest** for this reason
"""
- raise SkipTest(msg)
+ raise unittest.case.SkipTest(msg)
def asynchronous(func):
@@ -159,9 +150,6 @@ class AsyncTest(object):
self._status = AsyncStatus.PENDING
def run(self, *runner_args, **kwargs):
- if stem.prereq._is_python_26():
- return # not supported under python 2.6
-
def _wrapper(conn, runner, args):
os.nice(12)
@@ -170,7 +158,7 @@ class AsyncTest(object):
conn.send(AsyncResult('success', None))
except AssertionError as exc:
conn.send(AsyncResult('failure', str(exc)))
- except SkipTest as exc:
+ except unittest.case.SkipTest as exc:
conn.send(AsyncResult('skipped', str(exc)))
except:
conn.send(AsyncResult('error', traceback.format_exc()))
@@ -209,9 +197,6 @@ class AsyncTest(object):
self.result(None)
def result(self, test):
- if stem.prereq._is_python_26():
- return # not supported under python 2.6
-
with self._process_lock:
if self._status == AsyncStatus.PENDING:
self.run()
@@ -259,21 +244,6 @@ class TimedTestRunner(unittest.TextTestRunner):
TEST_RUNTIMES[self.id()] = time.time() - start_time
return result
- # TODO: remove and drop unnecessary 'returns' when dropping python 2.6
- # support
-
- def skipTest(self, message):
- if not stem.prereq._is_python_26():
- return super(original_type, self).skipTest(message)
-
- # TODO: remove when dropping python 2.6 support
-
- def assertItemsEqual(self, expected, actual):
- if stem.prereq._is_python_26():
- self.assertEqual(set(expected), set(actual))
- else:
- return super(original_type, self).assertItemsEqual(expected, actual)
-
def assertRaisesWith(self, exc_type, exc_msg, func, *args, **kwargs):
"""
Asserts the given invokation raises the expected excepiton. This is
@@ -287,16 +257,6 @@ class TimedTestRunner(unittest.TextTestRunner):
return self.assertRaisesRegexp(exc_type, '^%s$' % re.escape(exc_msg), func, *args, **kwargs)
- def assertRaisesRegexp(self, exc_type, exc_msg, func, *args, **kwargs):
- if stem.prereq._is_python_26():
- try:
- func(*args, **kwargs)
- self.fail('Expected a %s to be raised but nothing was' % exc_type)
- except exc_type as exc:
- self.assertTrue(re.search(exc_msg, str(exc), re.MULTILINE))
- else:
- return super(original_type, self).assertRaisesRegexp(exc_type, exc_msg, func, *args, **kwargs)
-
def id(self):
return '%s.%s.%s' % (original_type.__module__, original_type.__name__, self._testMethodName)
diff --git a/test/integ/connection/authentication.py b/test/integ/connection/authentication.py
index 1ab6aae0..cd562e7b 100644
--- a/test/integ/connection/authentication.py
+++ b/test/integ/connection/authentication.py
@@ -280,7 +280,6 @@ class TestAuthenticate(unittest.TestCase):
if test.runner.Torrc.PASSWORD not in runner.get_options() or test.runner.Torrc.COOKIE in runner.get_options():
self.skipTest('(requires only password auth)')
- return
for i in range(10):
with runner.get_tor_controller(False) as controller:
diff --git a/test/integ/control/base_controller.py b/test/integ/control/base_controller.py
index 294eaee3..323b57c7 100644
--- a/test/integ/control/base_controller.py
+++ b/test/integ/control/base_controller.py
@@ -47,7 +47,6 @@ class TestBaseController(unittest.TestCase):
if stem.util.system.is_mac():
self.skipTest('(ticket #6235)')
- return
with test.runner.get_runner().get_tor_socket() as control_socket:
controller = stem.control.BaseController(control_socket)
@@ -97,7 +96,6 @@ class TestBaseController(unittest.TestCase):
if stem.util.system.is_mac():
self.skipTest('(ticket #6235)')
- return
with test.runner.get_runner().get_tor_socket() as control_socket:
controller = stem.control.BaseController(control_socket)
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index a32f66f0..f87c0817 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -1296,7 +1296,6 @@ class TestController(unittest.TestCase):
if not os.path.exists(runner.get_test_dir('cached-microdescs')):
self.skipTest('(no cached microdescriptors)')
- return
with runner.get_tor_controller() as controller:
count = 0
@@ -1318,7 +1317,6 @@ class TestController(unittest.TestCase):
if test.tor_version() >= Requirement.MICRODESCRIPTOR_IS_DEFAULT:
self.skipTest('(requires server descriptors)')
- return
with runner.get_tor_controller() as controller:
# we should balk at invalid content
@@ -1349,7 +1347,6 @@ class TestController(unittest.TestCase):
if test.tor_version() >= Requirement.MICRODESCRIPTOR_IS_DEFAULT:
self.skipTest('(requires server descriptors)')
- return
with runner.get_tor_controller() as controller:
count = 0
@@ -1534,6 +1531,5 @@ class TestController(unittest.TestCase):
if TEST_ROUTER_STATUS_ENTRY is None:
# this is only likely to occure if we can't get descriptors
self.skipTest('(no named relays)')
- return
return TEST_ROUTER_STATUS_ENTRY
diff --git a/test/integ/descriptor/collector.py b/test/integ/descriptor/collector.py
index 3af25c29..53f45ae5 100644
--- a/test/integ/descriptor/collector.py
+++ b/test/integ/descriptor/collector.py
@@ -93,7 +93,6 @@ class TestCollector(unittest.TestCase):
def _test_index(self, compression):
if compression and not compression.available:
self.skipTest('(%s unavailable)' % compression)
- return
collector = stem.descriptor.collector.CollecTor()
index = collector.index(compression = compression)
diff --git a/test/integ/descriptor/extrainfo_descriptor.py b/test/integ/descriptor/extrainfo_descriptor.py
index c0a4d30c..4bfb8f3f 100644
--- a/test/integ/descriptor/extrainfo_descriptor.py
+++ b/test/integ/descriptor/extrainfo_descriptor.py
@@ -28,7 +28,7 @@ class TestExtraInfoDescriptor(unittest.TestCase):
descriptor_path = os.path.join(test_dir, 'cached-extrainfo')
if not os.path.exists(descriptor_path):
- raise stem.util.test_tools.SkipTest('(no cached descriptors)')
+ raise unittest.case.SkipTest('(no cached descriptors)')
with open(descriptor_path, 'rb') as descriptor_file:
for desc in stem.descriptor.parse_file(descriptor_file, 'extra-info 1.0', validate = True):
diff --git a/test/integ/descriptor/microdescriptor.py b/test/integ/descriptor/microdescriptor.py
index 3f2b20cb..4e67e15b 100644
--- a/test/integ/descriptor/microdescriptor.py
+++ b/test/integ/descriptor/microdescriptor.py
@@ -28,7 +28,7 @@ class TestMicrodescriptor(unittest.TestCase):
descriptor_path = os.path.join(test_dir, 'cached-microdescs')
if not os.path.exists(descriptor_path):
- raise stem.util.test_tools.SkipTest('(no cached descriptors)')
+ raise unittest.case.SkipTest('(no cached descriptors)')
with open(descriptor_path, 'rb') as descriptor_file:
for desc in stem.descriptor.parse_file(descriptor_file, 'microdescriptor 1.0', validate = True):
diff --git a/test/integ/descriptor/networkstatus.py b/test/integ/descriptor/networkstatus.py
index b9684e6f..efe646f9 100644
--- a/test/integ/descriptor/networkstatus.py
+++ b/test/integ/descriptor/networkstatus.py
@@ -43,12 +43,12 @@ class TestNetworkStatus(unittest.TestCase):
consensus_path = os.path.join(test_dir, 'cached-consensus')
if not os.path.exists(consensus_path):
- raise stem.util.test_tools.SkipTest('(no cached-consensus)')
+ raise unittest.case.SkipTest('(no cached-consensus)')
elif stem.util.system.is_windows():
# Unable to check memory usage on windows, so can't prevent hanging the
# system if things go bad.
- raise stem.util.test_tools.SkipTest('(unavailable on windows)')
+ raise unittest.case.SkipTest('(unavailable on windows)')
count, reported_flags = 0, []
@@ -79,9 +79,9 @@ class TestNetworkStatus(unittest.TestCase):
consensus_path = os.path.join(test_dir, 'cached-microdesc-consensus')
if not os.path.exists(consensus_path):
- raise stem.util.test_tools.SkipTest('(no cached-microdesc-consensus)')
+ raise unittest.case.SkipTest('(no cached-microdesc-consensus)')
elif stem.util.system.is_windows():
- raise stem.util.test_tools.SkipTest('(unavailable on windows)')
+ raise unittest.case.SkipTest('(unavailable on windows)')
count, reported_flags = 0, []
diff --git a/test/integ/descriptor/server_descriptor.py b/test/integ/descriptor/server_descriptor.py
index a62ee8f6..8aa4388c 100644
--- a/test/integ/descriptor/server_descriptor.py
+++ b/test/integ/descriptor/server_descriptor.py
@@ -28,7 +28,7 @@ class TestServerDescriptor(unittest.TestCase):
descriptor_path = os.path.join(test_dir, 'cached-descriptors')
if not os.path.exists(descriptor_path):
- raise stem.util.test_tools.SkipTest('(no cached descriptors)')
+ raise unittest.case.SkipTest('(no cached descriptors)')
with open(descriptor_path, 'rb') as descriptor_file:
for desc in stem.descriptor.parse_file(descriptor_file, 'server-descriptor 1.0', validate = True):
diff --git a/test/integ/directory/fallback.py b/test/integ/directory/fallback.py
index e12b2659..83c87a8d 100644
--- a/test/integ/directory/fallback.py
+++ b/test/integ/directory/fallback.py
@@ -33,7 +33,6 @@ class TestFallback(unittest.TestCase):
# added so many fallbacks now that this takes a looong time. :(
self.skipTest('(skipped by default)')
- return
unsuccessful = {}
downloader = stem.descriptor.remote.DescriptorDownloader()
diff --git a/test/integ/installation.py b/test/integ/installation.py
index 2ac655aa..627f0314 100644
--- a/test/integ/installation.py
+++ b/test/integ/installation.py
@@ -110,9 +110,9 @@ class TestInstallation(unittest.TestCase):
git_dir = os.path.join(test.STEM_BASE, '.git')
if not stem.util.system.is_available('git'):
- raise stem.util.test_tools.SkipTest('(git unavailable)')
+ raise unittest.case.SkipTest('(git unavailable)')
elif not os.path.exists(git_dir):
- raise stem.util.test_tools.SkipTest('(not a git checkout)')
+ raise unittest.case.SkipTest('(not a git checkout)')
if os.path.exists(DIST_PATH):
raise AssertionError("%s already exists, maybe you manually ran 'python setup.py sdist'?" % DIST_PATH)
diff --git a/test/integ/interpreter.py b/test/integ/interpreter.py
index 65d03fd3..32c52c28 100644
--- a/test/integ/interpreter.py
+++ b/test/integ/interpreter.py
@@ -38,10 +38,8 @@ class TestInterpreter(unittest.TestCase):
if test.runner.Torrc.PASSWORD in test.runner.get_runner().get_options():
self.skipTest('password auth unsupported')
- return
elif not READLINE_AVAILABLE:
self.skipTest('readline unavailable')
- return
expected = ['250-config-file=%s' % test.runner.get_runner().get_torrc_path(), '250 OK']
self.assertEqual(expected, _run_prompt('--run', 'GETINFO config-file'))
@@ -50,10 +48,8 @@ class TestInterpreter(unittest.TestCase):
def test_running_file(self):
if test.runner.Torrc.PASSWORD in test.runner.get_runner().get_options():
self.skipTest('password auth unsupported')
- return
elif not READLINE_AVAILABLE:
self.skipTest('readline unavailable')
- return
expected = [
'250-config-file=%s' % test.runner.get_runner().get_torrc_path(),
diff --git a/test/integ/manual.py b/test/integ/manual.py
index ae0b2b16..86811917 100644
--- a/test/integ/manual.py
+++ b/test/integ/manual.py
@@ -91,15 +91,14 @@ class TestManual(unittest.TestCase):
if self.man_path and os.path.exists(self.man_path):
os.remove(self.man_path)
+ # TODO: replace with a 'require' annotation
+
def requires_downloaded_manual(self):
if self.skip_reason:
self.skipTest(self.skip_reason)
- return True
elif self.download_error:
self.fail(self.download_error)
- return False
-
def test_escapes_non_ascii(self):
"""
Check that our manual parser escapes all non-ascii characters. If this
@@ -108,8 +107,7 @@ class TestManual(unittest.TestCase):
stem/manual.py's _get_categories().
"""
- if self.requires_downloaded_manual():
- return
+ self.requires_downloaded_manual()
def check(content):
try:
@@ -131,8 +129,7 @@ class TestManual(unittest.TestCase):
it has indented lines within it. Ensure we parse this correctly.
"""
- if self.requires_downloaded_manual():
- return
+ self.requires_downloaded_manual()
manual = stem.manual.Manual.from_man(self.man_path)
self.assertTrue(manual.config_options['ExitPolicy'].description.startswith(EXPECTED_EXIT_POLICY_DESCRIPTION_START))
@@ -143,8 +140,7 @@ class TestManual(unittest.TestCase):
Check if the cached manual information bundled with Stem is up to date or not.
"""
- if self.requires_downloaded_manual():
- return
+ self.requires_downloaded_manual()
cached_manual = stem.manual.Manual.from_cache()
latest_manual = stem.manual.Manual.from_man(self.man_path)
@@ -158,8 +154,7 @@ class TestManual(unittest.TestCase):
then go ahead and simply update these assertions.
"""
- if self.requires_downloaded_manual():
- return
+ self.requires_downloaded_manual()
def assert_equal(category, expected, actual):
if expected != actual:
@@ -208,8 +203,7 @@ class TestManual(unittest.TestCase):
class to match.
"""
- if self.requires_downloaded_manual():
- return
+ self.requires_downloaded_manual()
categories = stem.manual._get_categories(self.man_content)
@@ -230,8 +224,7 @@ class TestManual(unittest.TestCase):
Check that all the configuration options tor supports are in the man page.
"""
- if self.requires_downloaded_manual():
- return
+ self.requires_downloaded_manual()
with test.runner.get_runner().get_tor_controller() as controller:
config_options_in_tor = set([line.split()[0] for line in controller.get_info('config/names').splitlines() if line.split()[1] != 'Virtual'])
diff --git a/test/integ/util/connection.py b/test/integ/util/connection.py
index ed55ad89..e31ee865 100644
--- a/test/integ/util/connection.py
+++ b/test/integ/util/connection.py
@@ -27,10 +27,8 @@ class TestConnection(unittest.TestCase):
if test.runner.Torrc.PORT not in runner.get_options():
self.skipTest('(no control port)')
- return
elif resolver not in stem.util.connection.system_resolvers():
self.skipTest('(resolver unavailable on this platform)')
- return
with runner.get_tor_socket():
connections = stem.util.connection.get_connections(resolver, process_pid = runner.get_pid())
diff --git a/test/integ/util/proc.py b/test/integ/util/proc.py
index da4d6efc..315082d5 100644
--- a/test/integ/util/proc.py
+++ b/test/integ/util/proc.py
@@ -76,7 +76,6 @@ class TestProc(unittest.TestCase):
return
elif not os.access('/proc/net/tcp', os.R_OK) or not os.access('/proc/net/udp', os.R_OK):
self.skipTest('(proc lacks read permissions)')
- return
# making a controller connection so that we have something to query for
with runner.get_tor_socket():
diff --git a/test/integ/util/system.py b/test/integ/util/system.py
index 89019685..3b48433d 100644
--- a/test/integ/util/system.py
+++ b/test/integ/util/system.py
@@ -287,15 +287,12 @@ class TestSystem(unittest.TestCase):
if stem.util.system.is_windows():
self.skipTest('(unavailable on windows)')
- return
elif stem.util.system.is_mac() or stem.util.system.is_gentoo():
self.skipTest('(resolvers unavailable)')
- return
elif not stem.util.system.is_available('netstat') or \
stem.util.system.is_available('sockstat') or \
stem.util.system.is_available('lsof'):
self.skipTest('(connection resolvers unavailable)')
- return
runner = test.runner.get_runner()
tor_pid, tor_port = runner.get_pid(), test.runner.CONTROL_PORT
@@ -313,7 +310,6 @@ class TestSystem(unittest.TestCase):
if stem.util.system.is_gentoo():
self.skipTest('(unavailable on gentoo)')
- return
netstat_prefix = stem.util.system.GET_PID_BY_PORT_NETSTAT
@@ -353,7 +349,6 @@ class TestSystem(unittest.TestCase):
if stem.util.system.is_mac() or stem.util.system.is_gentoo():
self.skipTest('(resolvers unavailable)')
- return
lsof_prefix = stem.util.system.GET_PID_BY_PORT_LSOF
@@ -397,7 +392,6 @@ class TestSystem(unittest.TestCase):
if stem.util.system.is_windows():
self.skipTest('(unavailable on windows)')
- return
runner = test.runner.get_runner()
runner_pid, tor_cwd = runner.get_pid(), runner.get_tor_cwd()
@@ -537,7 +531,6 @@ class TestSystem(unittest.TestCase):
if getpass.getuser() == 'root':
self.skipTest('(running as root)')
- return
self.assertEqual(os.getcwd(), stem.util.system.expand_path('.'))
self.assertEqual(os.getcwd(), stem.util.system.expand_path('./'))
@@ -568,7 +561,6 @@ class TestSystem(unittest.TestCase):
if stem.prereq.is_pypy():
self.skipTest('(unimplemented for pypy)')
- return
initial_name = stem.util.system.get_process_name()
self.assertTrue('run_tests.py' in initial_name)
diff --git a/test/unit/descriptor/collector.py b/test/unit/descriptor/collector.py
index b4ff7636..3d6b2da0 100644
--- a/test/unit/descriptor/collector.py
+++ b/test/unit/descriptor/collector.py
@@ -72,7 +72,6 @@ class TestCollector(unittest.TestCase):
def test_index_gzip(self, urlopen_mock):
if not Compression.GZIP.available:
self.skipTest('(gzip compression unavailable)')
- return
import zlib
urlopen_mock.return_value = io.BytesIO(zlib.compress(EXAMPLE_INDEX_JSON))
@@ -85,7 +84,6 @@ class TestCollector(unittest.TestCase):
def test_index_bz2(self, urlopen_mock):
if not Compression.BZ2.available:
self.skipTest('(bz2 compression unavailable)')
- return
import bz2
urlopen_mock.return_value = io.BytesIO(bz2.compress(EXAMPLE_INDEX_JSON))
@@ -98,7 +96,6 @@ class TestCollector(unittest.TestCase):
def test_index_lzma(self, urlopen_mock):
if not Compression.LZMA.available:
self.skipTest('(lzma compression unavailable)')
- return
import lzma
urlopen_mock.return_value = io.BytesIO(lzma.compress(EXAMPLE_INDEX_JSON))
diff --git a/test/unit/descriptor/compression.py b/test/unit/descriptor/compression.py
index 3945bc9c..a51bba62 100644
--- a/test/unit/descriptor/compression.py
+++ b/test/unit/descriptor/compression.py
@@ -32,7 +32,6 @@ class TestCompression(unittest.TestCase):
if not compression.available:
self.skipTest('(%s unavailable)' % compression)
- return
with open(get_resource(filename), 'rb') as compressed_file:
content = compression.decompress(compressed_file.read())
diff --git a/test/unit/descriptor/export.py b/test/unit/descriptor/export.py
index a33c1d42..bf7d054a 100644
--- a/test/unit/descriptor/export.py
+++ b/test/unit/descriptor/export.py
@@ -21,10 +21,6 @@ class TestExport(unittest.TestCase):
Exports a single minimal tor server descriptor.
"""
- if stem.prereq._is_python_26():
- self.skipTest('(header added in python 2.7)')
- return
-
desc = RelayDescriptor.create({
'router': 'caerSidi 71.35.133.197 9001 0 0',
'published': '2012-03-01 17:15:27',
@@ -73,10 +69,6 @@ class TestExport(unittest.TestCase):
Checks that the default attributes for our csv output doesn't include private fields.
"""
- if stem.prereq._is_python_26():
- self.skipTest('(header added in python 2.7)')
- return
-
desc = RelayDescriptor.create()
desc_csv = export_csv(desc)
diff --git a/test/unit/descriptor/reader.py b/test/unit/descriptor/reader.py
index 76d1d8f3..589b4641 100644
--- a/test/unit/descriptor/reader.py
+++ b/test/unit/descriptor/reader.py
@@ -192,7 +192,6 @@ class TestDescriptorReader(unittest.TestCase):
if getpass.getuser() == 'root':
self.skipTest('(running as root)')
- return
# Skip the test on windows, since you can only set the file's
# read-only flag with os.chmod(). For more information see...
@@ -558,10 +557,8 @@ class TestDescriptorReader(unittest.TestCase):
if getpass.getuser() == 'root':
self.skipTest('(running as root)')
- return
elif stem.util.system.is_windows():
self.skipTest('(chmod not functional)')
- return
test_path = os.path.join(self.temp_directory, 'secret_file')
diff --git a/test/unit/descriptor/remote.py b/test/unit/descriptor/remote.py
index ab0ad3d7..7703c62c 100644
--- a/test/unit/descriptor/remote.py
+++ b/test/unit/descriptor/remote.py
@@ -241,7 +241,6 @@ class TestDescriptorDownloader(unittest.TestCase):
if not stem.prereq.is_zstd_available():
self.skipTest('(requires zstd module)')
- return
descriptors = list(stem.descriptor.remote.get_server_descriptors(
'9695DFC35FFEB861329B9F1AB04C46397020CE31',
@@ -260,7 +259,6 @@ class TestDescriptorDownloader(unittest.TestCase):
if not stem.prereq.is_lzma_available():
self.skipTest('(requires lzma module)')
- return
descriptors = list(stem.descriptor.remote.get_server_descriptors(
'9695DFC35FFEB861329B9F1AB04C46397020CE31',
diff --git a/test/unit/installation.py b/test/unit/installation.py
index fd8709ba..a91f0362 100644
--- a/test/unit/installation.py
+++ b/test/unit/installation.py
@@ -25,7 +25,6 @@ class TestInstallation(unittest.TestCase):
def test_installs_all_modules(self):
if self.skip_reason:
self.skipTest(self.skip_reason)
- return True
# Modules cited my our setup.py looks like...
#
@@ -49,7 +48,6 @@ class TestInstallation(unittest.TestCase):
def test_installs_all_data_files(self):
if self.skip_reason:
self.skipTest(self.skip_reason)
- return True
# Checking that we have all non-source files. Data looks like...
#
diff --git a/test/unit/manual.py b/test/unit/manual.py
index b7a2de6f..c108af19 100644
--- a/test/unit/manual.py
+++ b/test/unit/manual.py
@@ -149,7 +149,6 @@ class TestManual(unittest.TestCase):
if not stem.manual.HAS_ENCODING_ARG:
self.skipTest('(man lacks --encoding arg on OSX, BSD, and Slackware #18660)')
- return
manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
@@ -170,7 +169,6 @@ class TestManual(unittest.TestCase):
if not stem.manual.HAS_ENCODING_ARG:
self.skipTest('(man lacks --encoding arg on OSX and BSD and Slackware, #18660)')
- return
manual = stem.manual.Manual.from_man(UNKNOWN_OPTIONS_MAN_PATH)
@@ -198,7 +196,6 @@ class TestManual(unittest.TestCase):
if not stem.manual.HAS_ENCODING_ARG:
self.skipTest('(man lacks --encoding arg on OSX, BSD and Slackware, #18660)')
- return
manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
@@ -215,7 +212,6 @@ class TestManual(unittest.TestCase):
if not stem.manual.HAS_ENCODING_ARG:
self.skipTest('(man lacks --encoding arg on OSX, BSD, and Slackware #18660)')
- return
manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
diff --git a/test/unit/tutorial_examples.py b/test/unit/tutorial_examples.py
index c4b26ad0..de00a2b8 100644
--- a/test/unit/tutorial_examples.py
+++ b/test/unit/tutorial_examples.py
@@ -235,13 +235,6 @@ class TestTutorialExamples(unittest.TestCase):
@patch('stem.descriptor.remote.Query')
@patch('stem.directory.Authority.from_cache')
def test_compare_flags(self, authorities_mock, query_mock, stdout_mock):
- if stem.prereq._is_python_26():
- # example imports OrderedDict from collections which doesn't work under
- # python 2.6
-
- self.skipTest("(example doesn't support python 2.6)")
- return
-
authorities_mock().items.return_value = [('moria1', DIRECTORY_AUTHORITIES['moria1']), ('maatuska', DIRECTORY_AUTHORITIES['maatuska'])]
fingerprint = [
1
0