LINUX.ORG.RU

Сообщения Divius

 

[Twisted Web] Unit-тестирование HTML-вывода

Форум — Web-development

Собственно, как вы делаете сабж?

Имеем: Web-сервер на Twisted Web (язык Python, если что), шаблоны рендерятся при помощи Jinja2 (генерируется валидный HTML 4.01). В связи с постоянными регрессиями очень хочется в имеющуюся систему тестирования (на Twisted Trial) включить тесты для вывода web-сервера.

В голову приходит только парсить полученные странички в поисках нужны тэгов, но это значит завязывать тесты на дизайн, что очень-очень плохо.

Буду благодарен за любые идеи.

Divius
()

Awesome Ambiance

Галерея — Скриншоты

Допилил тему Ambiance для Awesome.

На скрине: Ubuntu 10.10, дефолтная тема Ambiance, дефолтные Ш, Awesome 3.4.8 (из ppa). Тему создал на основе всех трёх «изкаробочных» тем Awesome. Сверху gnome-panel, апплеты: tracker (поиск), panflute (управление плеерами), убунтовские индикаторы. Регулирую громкость через регулятор из Awesome (на панели внизу), т.к. PulseAudio выпилен.

rc.lua, theme.lua.

Если захотите использовать, помните, что требуется Awesome >= 3.4.

UPD: Оно же с Nautilus Elementary

UPD2: Обоина

>>> Просмотр (1280x1024, 813 Kb)

 , , , ,

Divius
()

QTreeView падает на мой модели в drawRow()

Форум — Development

Такая печальная история: пишу свою модель для построения дерева из БД. Вроде, написал, все unit-тесты проходит без вопросов, но на реальном примере, когда её впихиваешь в QTreeView, происходит странное падение: http://pastebin.com/gGqRpJPX. Район падения в GDB:

#0  _int_malloc (av=<value optimized out>, bytes=<value optimized out>) at malloc.c:4436
#1  0x01c5bf9c in *__GI___libc_malloc (bytes=138) at malloc.c:3660
#2  0x012bcb8d in qMalloc (size=138) at global/qmalloc.cpp:55
#3  0x0130fad4 in QString::fromLatin1_helper (str=0x16cb3c0 "TreeResourceModel::parent: No parent row for index %1,%2,%3", size=59)
    at tools/qstring.cpp:3603
#4  0x013158f4 in QString::fromAscii_helper (str=0x16cb3c0 "TreeResourceModel::parent: No parent row for index %1,%2,%3", size=88) at tools/qstring.cpp:3638
#5  0x0167ed65 in QString (this=0x82b9838, index=...) at /usr/include/qt4/QtCore/qstring.h:413
#6  IBD::TreeResourceModel::parent (this=0x82b9838, index=...) at ../pkibd-core/libibd-core/treeresourcemodel.cpp:525
#7  0x00b280cd in QModelIndex::parent (this=0x82b43d8, painter=0xbfffd28c, option=..., index=...)
    at ../../include/QtCore/../../src/corelib/kernel/qabstractitemmodel.h:389
#8  QTreeView::drawRow (this=0x82b43d8, painter=0xbfffd28c, option=..., index=...) at itemviews/qtreeview.cpp:1471
#9  0x00b334a9 in QTreeView::drawTree (this=0x82b43d8, painter=0xbfffd28c, region=...) at itemviews/qtreeview.cpp:1433
#10 0x00b365bd in QTreeView::paintEvent (this=0x82b43d8, event=0xbfffdae4) at itemviews/qtreeview.cpp:1266

Пробовал снести весь код из parent() - падает где-то ещё, но тоже в чём-то вызванном из drawRow(). Как я только не изгалялся в тестах с этим parent() - воспроизвести падение не могу, только на живой вьюшке. Гугл тоже ничем не помог.

Буду благодарен за любую идею, как изгнать баг!

Divius
()

Аналог Skylink на Украине

Форум — General

Собираюсь поездить по Украине, но очень нужен интернет. Сейчас имеется скайлинковский модем-роутер. Есть ли какой-нибудь местный провайдер, чью симку можно было бы запихнуть в этот модем? Если можно, укажите расценки/ссылку на таковые.

Заранее спасибо.

Divius
()

[Need help] Skylink забанен в гугле?

Форум — General

Всем привет!

Поставил себе роутер от хвалёного скайлинка и сразу же столкнулся с проблемой: http://www.google.com не открывается. При этом, можно открыть, например, gmail, но только пока он не полезет на гугловский сервер авторизации (который располагается на домене http://www.google.com). Поиск также не открывается.

Traceroute и ping:

$ traceroute www.google.com
traceroute to www.google.com (74.125.232.20), 30 hops max, 60 byte packets
 1  192.168.10.1 (192.168.10.1)  0.512 ms  0.949 ms  1.389 ms
 2  pdsn-m34-6cm6.msk.skylink.ru (212.119.106.156)  77.646 ms  101.198 ms  101.597 ms
 3  c6500-m34-1-vl101.msk.skylink.ru (212.119.106.2)  101.994 ms  101.991 ms  140.099 ms
 4  core-m9-2-ge1-3-0-0.cell.ru (212.119.97.9)  140.494 ms  147.858 ms  194.713 ms
 5  core-m9-1-ge1-3-0-0.cell.ru (212.119.97.20)  163.534 ms  163.933 ms  164.324 ms
 6  msk-ix-gw1.google.com (193.232.244.232)  164.318 ms  97.881 ms  96.733 ms
 7  74.125.232.20 (74.125.232.20)  135.252 ms  190.431 ms  182.093 ms

$ traceroute mail.google.com
traceroute to mail.google.com (74.125.87.19), 30 hops max, 60 byte packets
 1  192.168.10.1 (192.168.10.1)  0.622 ms  1.027 ms  1.479 ms
 2  pdsn-m34-6cm6.msk.skylink.ru (212.119.106.156)  77.676 ms  85.450 ms  85.845 ms
 3  c6500-m34-1-vl101.msk.skylink.ru (212.119.106.2)  124.542 ms  124.924 ms  132.207 ms
 4  core-m9-2-ge1-3-0-0.cell.ru (212.119.97.9)  148.115 ms  148.510 ms  148.904 ms
 5  core-m9-1-ge1-3-0-0.cell.ru (212.119.97.20)  148.897 ms  149.283 ms  149.679 ms
 6  msk-ix-gw1.google.com (193.232.244.232)  171.240 ms  75.225 ms  120.507 ms
 7  72.14.239.254 (72.14.239.254)  136.236 ms  136.613 ms  190.777 ms
 8  209.85.248.43 (209.85.248.43)  191.237 ms 209.85.248.47 (209.85.248.47)  198.624 ms  206.436 ms
 9  72.14.238.101 (72.14.238.101)  206.822 ms 72.14.232.217 (72.14.232.217)  207.206 ms 72.14.232.221 (72.14.232.221)  207.591 ms
10  hb-in-f19.1e100.net (74.125.87.19)  245.874 ms  246.270 ms  246.237 ms

$ ping www.google.com
PING www.l.google.com (74.125.232.17) 56(84) bytes of data.
64 bytes from 74.125.232.17: icmp_seq=1 ttl=58 time=93.3 ms
64 bytes from 74.125.232.17: icmp_seq=2 ttl=58 time=98.9 ms
64 bytes from 74.125.232.17: icmp_seq=3 ttl=58 time=97.6 ms
64 bytes from 74.125.232.17: icmp_seq=4 ttl=58 time=100 ms
64 bytes from 74.125.232.17: icmp_seq=5 ttl=58 time=111 ms
^C64 bytes from 74.125.232.17: icmp_seq=6 ttl=58 time=103 ms

--- www.l.google.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 25678ms
rtt min/avg/max/mdev = 93.398/100.947/111.465/5.634 ms

Прочие сайты работают нормально. Есть какие-нибудь идеи?

Заранее спасибо.

Divius
()

[Qt] QNetworkManagerAccess: как залить файл на FTP?

Форум — Development

Всем ещё раз привет!

В документации к классу QFtp рекламируют новые высокоуровневые классы, как замену старым низкоуровневым, да и самому возня с QFtp надоела. Тесту ради написал следующий код (импорты и main пропущены):

class Test(QWidget):

	def __init__(self):
		QWidget.__init__(self)
		self.manager = QNetworkAccessManager();
		self.manager.finished.connect(self.finished)
		self.manager.authenticationRequired.connect(self.auth)
		self.l = QVBoxLayout()
		self.btn = QPushButton()
		self.btn.clicked.connect(self.put)
		self.l.addWidget(self.btn)
		self.setLayout(self.l)

	def finished(self, reply):
		print "Finished", reply.error(), reply.error() == QNetworkReply.NoError
		QApplication.quit()

	def auth(self, reply, auth):
		print "authenticationRequired", auth.realm()
		auth.setUser("ibdftp")
		auth.setPassword("111111")

	def put(self):
		print "Putting"
		self.f = QFile("/home/divius/test.tbz2")
		self.f.open(QIODevice.ReadOnly)
		self.request = QNetworkRequest(QUrl("ftp://127.0.0.1/Test/test.tbz2"))
		self.manager.put(self.request, self.f)
		print "Requested"

Не работает - auth вызывается 2 раза, после чего в finished() ошибка QNetworkReply.ContentAccessDenied. ЧЯДНТ?

 

Divius
()

[C++] Проблемы с «ромбическим» наследованием

Форум — Development

Всем привет!

Имеется такой набор классов. Первые 2 НЕ мои, я их менять не могу:

class A
{
  public: virtual void f() = 0;
};

class B : public A // обратите внимание на отсутствие слова virtual!
{
  public: void f() {...}
};

И есть мой класс:

class C : public A // если это важно, класс C - чисто абстрактный
{
  ... // метод f() я не трогаю!
};

Теперь товарищ, пользующийся моим классом хочет сделать следующее:

class D : public B, public C
{
  ...
};

Сможет ли он сделать такую штуку, если нет, то могу ли я чем-нибудь ему помочь?

Заранее спасибо.

 

Divius
()

[awesome] как изменить размер окна в режиме tile

Форум — Desktop

Изучаю awesome. Хочу сделать так, чтобы Geany, находясь в тэге с layout tile.right, занимал не 50% экрана, а, скажем, 75%. Имею такую конфигурацию:

{ rule = { instance = "geany" },
      properties = { tag = tags[1][3], floating = false },
      callback = function(c) awful.client.incwfact(0.25, c) end },
Не работает - ничего не меняется.

Так тоже не работает:

{ rule = { instance = "geany" },
      properties = { tag = tags[1][3], floating = false },
      callback = function(c) awful.client.setwfact(0.75, c) end },

ЧЯДНТ?

 

Divius
()

[Ubuntu Lucid] [Howto] Вернуть кнопки заголовка окна обратно

Форум — Desktop

Авторы Ubuntu опять курнули лишнего переработали дизайн, и теперь в новой Убунте кнопки на заголовке ока по умолчанию располагаются слева, вот так. Ещё до меня был открыт баг. Если кому-то это нововведение тоже жизни не даёт, можете выполнить простую команду:

gconftool-2 --set /apps/metacity/general/button_layout --type string "menu:minimize,maximize,close"
или, если вы не используете кнопку «Меню», то
gconftool-2 --set /apps/metacity/general/button_layout --type string ":minimize,maximize,close"

Такие дела.

 

Divius
()

[webmoney light] [chromium] <- как подружить?

Форум — Talks

Экспериментирую с Chromium, встал вопрос о логине на WebMoney. Внимание, вопрос: есть ли в творении гугла нормальные средства для работы с сертификатами X.509?

 

Divius
()

[gmail] Что за режим новый появился: «Живая лента»?

Форум — Talks

Subj. Включается внизу («Включить обновление»), у кого нет.

 

Divius
()

RSS подписка на новые темы