Para facilitar el uso de unittest.assertRaises() podemos usar funciones privadas. Esto al menos con python < 2.7 (ya que en python 2.7 assertRaises() permite ser usado como "context manager").
jueves, 17 de marzo de 2011
Funciones privadas para unittest.assertRaises()
Posteado por
Software and Motorcycles
a las
11:42
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
python
sábado, 12 de marzo de 2011
OpenStack Object Storage - Ejemplo con Python
Adjunto un pequeño ejemplo en Python.
----- Inicio del ejemplo -----
----- Fin del ejemplo -----
----- Inicio del ejemplo -----
----- Fin del ejemplo -----
Posteado por
Software and Motorcycles
a las
21:22
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
viernes, 11 de marzo de 2011
Probando OpenStack Object Storage
Luego de unas horas, pude tener andando mi instancia de OpenStack Object Storage. El servidor lo instalé en un Ubuntu 10.04.2 LTS (Lucid), siguiendo las instrucciones de Installing OpenStack Object Storage on Ubuntu.
Algunas cuestiones a tener en cuenta:
Algunas cuestiones a tener en cuenta:
- En la página de "Configuring OpenStack Object Storage", al crear los "self-signed certs" utilizando el comando "openssl req -new -x509 -nodes -out cert.crt -keyout cert.key", en un momento solicita "Common Name (eg, YOUR name) []:"; aquí hay que ingresar el nombre del host que se utilizará para conectarse, o el IP con el que se accederá al Object Storage desde la red. Por ejemplo, en mi caso, utilicé "192.168.122.233". Al conectarnos desde Python, no parece influir el "Comon Name" elegido, pero sí influye al conectarnos desde Java.
- En vez de usar "swift-ring-builder account.builder create 18 3 1", utilicé "swift-ring-builder account.builder create 18 1 1", ya que sólo hay 1 servidor. Quizá se pueda usar 3, y de esa manera, al agregar servidores, los datos se distribuyan automáticamente...
- Al ejecutar los comandos "swift-ring-builder account.builder add ...." hay que especificar "DEVICE"... Bueno, aunque el parámetro se llama "device", esto NO se refiere a la partición! Sino al nombre del directorio donde está montada la partición donde se guardarán los datos. El servicio supone que las particiones donde se guardarán los datos están montadas en "/srv/node/DEVICE". Por ejemplo, si los datos los vamos a guardar en la partición /dev/sdb1, y montamos esa partición en "/srv/node/sdb1", entonces DEVICE = sdb1. NO hay que tomar a DEVICE como /dev/sdb1, esto es un error. Por ejemplo, en mi caso, utilice "sdb1" como DEVICE (para seguir la nomenclatura de la documentación), pero en realidad utilizo la partición "/dev/vdb1", ya que es un instancia de KVM y utilizo virtio para mapear los discos. Por lo tanto, en el fstab tengo: "/dev/vdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0".
Posteado por
Software and Motorcycles
a las
1:47
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
viernes, 1 de octubre de 2010
Monitoreo de servicios "filtrados" con Icinga e iptables
Con iptables se pueden permitir conexiones a un puerto TCP (como para ser monitoreado con Icinga o Nagios) y a la vez evitar que se utilice el puerto para acceder al servicio.
# Icinga
iptables -A INPUT -s $IP_ICINGA -p tcp --dport 139 --syn -j ACCEPT
iptables -A INPUT -s $IP_ICINGA -p tcp --dport 139 -j DROP
# Mantenerlo al utlimo, para q' funque filtrado de conexiones de Icinga
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Con el ejemplo anterior, monitoreo el servicio de Samba, pero no permito que se reciba nada más que los paquetes TCP que crean la conexion. Los paquetes siguientes son eliminados.
Es importante que "ESTABLISHED,RELATED", si se utiliza, se haga al último.
# Icinga
iptables -A INPUT -s $IP_ICINGA -p tcp --dport 139 --syn -j ACCEPT
iptables -A INPUT -s $IP_ICINGA -p tcp --dport 139 -j DROP
# Mantenerlo al utlimo, para q' funque filtrado de conexiones de Icinga
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Con el ejemplo anterior, monitoreo el servicio de Samba, pero no permito que se reciba nada más que los paquetes TCP que crean la conexion. Los paquetes siguientes son eliminados.
Es importante que "ESTABLISHED,RELATED", si se utiliza, se haga al último.
Posteado por
Software and Motorcycles
a las
11:51
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
icinga,
iptables,
nagios
miércoles, 28 de julio de 2010
Ejecutar programa en tty
Luego de investigar bastante, encontré la forma! Necesitaba ejecutar en la consola de texto un programa que monitorea el estado del servidor, pero necesitaba que esto esté funcionando desde que arranca el servidor, y sin necesidad que nadie se loguee. Esto lo logré con la ayuda de rungetty.
Por ejemplo, para que se ejecute en tty6, modifiqué "/etc/init/tty6.conf" en un Ubuntu 10.04, reemplazando la última línea:
exec /sbin/getty -8 38400 tty6
por:
exec rungetty tty6 -u root -- /usr/bin/env python /path/a/script/python.py
Por ejemplo, para que se ejecute en tty6, modifiqué "/etc/init/tty6.conf" en un Ubuntu 10.04, reemplazando la última línea:
exec /sbin/getty -8 38400 tty6
por:
exec rungetty tty6 -u root -- /usr/bin/env python /path/a/script/python.py
Para realizar pruebas, la ejecución directa de rungetty me ha dado problemas (básicamente al ejecutar rungetty no pasaba nada, ni mostraba ningún mensaje de error, aunque el exit status era 1). Esto se soluciona ejecutando rungetty con setsid:
setsid rungetty tty8 -u root -- /path/a/programa
Luego de esto, con Ctrl+Alt+F8 podremos cambiarnos a tty8 y utilizar el programa...
Posteado por
Software and Motorcycles
a las
22:41
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
domingo, 4 de julio de 2010
Deshabilitación de pad en Acer Aspire 5542
Para que funcione este botón, hace falta bootear linux con un parámetro adicional. Esto se logra modificando la configuración de grub.
1) abrir "/etc/default/grub" para editar:
1) abrir "/etc/default/grub" para editar:
acer| ~$ sudo mcedit /etc/default/grub
2) agregar "i8042.nomux" en la linea que dice "GRUB_CMDLINE_LINUX_DEFAULT", por ejemplo, en mi caso queda así:
GRUB_CMDLINE_LINUX_DEFAULT="i8042.nomux"
3) luego hay que ejecutar la herramienta de actualización de grub:
acer| ~$ sudo update-grub2
2) agregar "i8042.nomux" en la linea que dice "GRUB_CMDLINE_LINUX_DEFAULT", por ejemplo, en mi caso queda así:
GRUB_CMDLINE_LINUX_DEFAULT="i8042.nomux"
3) luego hay que ejecutar la herramienta de actualización de grub:
acer| ~$ sudo update-grub2
Luego de reiniciar, el botón debería funcionar...
Posteado por
Software and Motorcycles
a las
14:04
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
sábado, 3 de julio de 2010
Microfono en Acer Aspire 5542-5241
Luego de renegar bastante, parece que encontré la solución para hacer funcionar el microfono de la Acer Aspire 5542-5241 en Ubuntu Lucid.
Para esto, hay que agregar la siguiente línea en el archivo "/etc/modprobe.d/alsa-base.conf":
options snd-hda-intel position_fix=1
Lo encontré en https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/523953
Para esto, hay que agregar la siguiente línea en el archivo "/etc/modprobe.d/alsa-base.conf":
options snd-hda-intel position_fix=1
Lo encontré en https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/523953
Posteado por
Software and Motorcycles
a las
3:56
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
miércoles, 26 de agosto de 2009
OpenOffice: como embeber imagenes linkeadas
Me sucedió varias veces que luego de copiar y pegar contenidos en un documento OpenOffice recuerdo que las imágenes quedan "linkeadas" y no embebidas.
Para embeber estas imágenes linkeadas no encontré ningún macro ni forma automatizada, pero es posible hacerlo con un procedimiento bastante sencillo, seleccionando la opción "Links" en el menú "Edit". Aparecerá una ventana con todas las imágenes linkeadas, y para embeber las imágenes listadas hay que seleccionarlas y presionar el boton "Break Link" (una por una).
Encontré esta información en www.taming-openoffice-org.com
Para embeber estas imágenes linkeadas no encontré ningún macro ni forma automatizada, pero es posible hacerlo con un procedimiento bastante sencillo, seleccionando la opción "Links" en el menú "Edit". Aparecerá una ventana con todas las imágenes linkeadas, y para embeber las imágenes listadas hay que seleccionarlas y presionar el boton "Break Link" (una por una).
Encontré esta información en www.taming-openoffice-org.com
Posteado por
Software and Motorcycles
a las
20:16
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
openoffice
Diff de docs. OpenOffice en GIT
1) Instalar odt2txt (convierte docs. OpenOffice a texto plano)
2) Configurar GIT
2.a) Agregar a .gitconfig:
Con estos 2 pasos realizados, git ya puede mostrar diferencias entre documentos OpenOffice (por ejemplo, al realizar modificaciones locales).
Artículo completo en http://www-verimag.imag.fr/~moy/opendocument/
aptitude install odt2txt
2) Configurar GIT
2.a) Agregar a .gitconfig:
[diff "odf"]2.b) Agregar a .gitattributes
textconv=odt2txt
*.ods diff=odf
*.odt diff=odf
*.odp diff=odf
Con estos 2 pasos realizados, git ya puede mostrar diferencias entre documentos OpenOffice (por ejemplo, al realizar modificaciones locales).
Artículo completo en http://www-verimag.imag.fr/~moy/opendocument/
Posteado por
Software and Motorcycles
a las
13:28
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
git
martes, 25 de agosto de 2009
Pro GIT
Hace tiempo está disponible el libro Pro GIT para ser bajado (clonando el repositorio git) o navegado.
Ya se está trabajando en la traducción al español: accedan a:
http://github.com/progit/progit/tree/master
y vean el directorio "es-ni" (por ahora es la única traducción al español, en el futuro puede haber otras).
Ya se está trabajando en la traducción al español: accedan a:
http://github.com/progit/progit/tree/master
y vean el directorio "es-ni" (por ahora es la única traducción al español, en el futuro puede haber otras).
Posteado por
Software and Motorcycles
a las
15:05
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
git
miércoles, 22 de julio de 2009
"ip addr" en vez de alias
Luego de renegar un poco con Ubuntu 9.04 al configurar un alias de la eth0 (me usaba el IP del alias para realizar las conexiones salientes!), encontré que hay otras maneras de armar los alias, usando el comando ip.
Y para que se configure automáticamente, se puede agregar en /etc/network/interfaces:
Más información aquí.
ip addr add 192.168.5.101/24 brd + dev eth0 label "eth0:2"
Y para que se configure automáticamente, se puede agregar en /etc/network/interfaces:
post-up /sbin/ip addr add 192.168.5.101/24 brd + dev eth0 label "eth0:2" || true
Más información aquí.
Posteado por
Software and Motorcycles
a las
8:56
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
linux,
red,
ubuntu
miércoles, 24 de junio de 2009
Alternativa a lomount
Parece que lomount no está en Ubuntu (al menos Ubuntu 9.04 p/AMD64), pero existe un truco para montar particiones "internas" de una imagen de un disco.
Yo necesité montar la 1er partición de la imagen de un disco de un dominio virtualizado. Aunque el disco (para el dominio virtualizado) en realidad estaba provisto por un volumen lógico (LVM) todo funcionó perfectamente.
Pasos a seguir (en ingles): http://community.livejournal.com/debian/340887.html
Yo necesité montar la 1er partición de la imagen de un disco de un dominio virtualizado. Aunque el disco (para el dominio virtualizado) en realidad estaba provisto por un volumen lógico (LVM) todo funcionó perfectamente.
Pasos a seguir (en ingles): http://community.livejournal.com/debian/340887.html
Posteado por
Software and Motorcycles
a las
22:25
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
linux,
ubuntu
Migrar repositorio "privado" de git a repositorio público
Necesité crear repositorios "públicos" (donde se puedan hacer pull/push desde distintas PCs) tomando los datos de repositorios locales/privados (donde realizo el desarrollo diario) y resultó ser bastante fácil:
1. Crear repositorio "publico"
a) crear un directorio - mkdir /var/git/proyecto.git
b) posicionarse en ese directorio - cd /var/git/proyecto.git
c) inicializar el directorio - git init --bare
2. Hacer push de repositorio local/privado a público
a) nos posicionamos en directorio - cd /path/a/repo/privado
b) creamos "remote" - git remote add origin ssh://pc/var/git/proyecto.git
c) configuramos repositorio - git config --bool remote.origin.mirror true
d) hacemos push - git push origin
El paso 2.c es opcional, pero a mí me resultó muy útil. Al ajustar la variable "remote.origin.mirror" a true, git subirá todos los branches y tags automáticamente cuando ejecutemos el push. Si no se realiza esta configuración, el en paso 2.d hará falta especificar los branches a subir.
1. Crear repositorio "publico"
a) crear un directorio - mkdir /var/git/proyecto.git
b) posicionarse en ese directorio - cd /var/git/proyecto.git
c) inicializar el directorio - git init --bare
2. Hacer push de repositorio local/privado a público
a) nos posicionamos en directorio - cd /path/a/repo/privado
b) creamos "remote" - git remote add origin ssh://pc/var/git/proyecto.git
c) configuramos repositorio - git config --bool remote.origin.mirror true
d) hacemos push - git push origin
El paso 2.c es opcional, pero a mí me resultó muy útil. Al ajustar la variable "remote.origin.mirror" a true, git subirá todos los branches y tags automáticamente cuando ejecutemos el push. Si no se realiza esta configuración, el en paso 2.d hará falta especificar los branches a subir.
Posteado por
Software and Motorcycles
a las
13:55
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
git
sábado, 20 de junio de 2009
Tig: text-mode interface for git
Estaba disponible al menos desde Ubuntu 8.10 pero recién lo descubro! Es una interface en modo texto para git, con varias funciones. Home. Screenshots.
#~ sudo aptitude install tig
#~ sudo aptitude install tig
Posteado por
Software and Motorcycles
a las
17:42
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
git
sábado, 13 de junio de 2009
Ubuntu 9.04 como dominio virtual usando virt-install + kvm
Se puede instalar Ubuntu 9.04 usando virt-install con un comando como el siguiente:
-d para que muestre por consola información adicional mientras se crea la maquina virtual
-n es el nombre del dominio virtual
-f es para especificar discos, en este caso el dominio virtual vera 3 discos, el 1ro lo usaré para /, el segudo para /tmp y el 3ro como un "volumen fisico" para configurar LVM.
-c para especificar el path al iso
En el caso de usar LVM hay que tener cuidado porque en el servidor host se verán todos los "volume groups" y los "logical volumes" del dominio virtual. Para evitar esto se puede configurar LVM para que IGNORE totalmente ciertos "physical volumes" editando el archivo /etc/lvm/lvm.conf, y agregando:
filter = [ "r|^/dev/vg_virt/pv.*|" ]
Esto le dice a LVM que ignore cualquier "physical volume" que esté referenciado por algún dispositivo cuyo nombre comience con "/dev/vg_virt/pv". Para chequear que esto haya funcionado correctamente, ejecutamos:
pvscan -v
Los siguientes pasos a seguir podrían ser:
- instalar git y crear repo en /etc para tener historial de modificaciones
- configurar approx
- configurar serial console
- configurar virtio para discos/red
- configurar red usando bridge
- configurar autostart de dominios
virt-install -d --connect qemu:///system \
-n ubuntu904virtual -r 1024 --vcpus=4 \
-f /dev/vg_virt/root \
-f /dev/vg_virt/tmp \
-f /dev/vg_virt/pv0 \
-c /tmp/ubuntu-9.04-server-amd64.iso \
--accelerate --vnc -v \
--os-type=linux --os-variant=generic26
-d para que muestre por consola información adicional mientras se crea la maquina virtual
-n es el nombre del dominio virtual
-f es para especificar discos, en este caso el dominio virtual vera 3 discos, el 1ro lo usaré para /, el segudo para /tmp y el 3ro como un "volumen fisico" para configurar LVM.
-c para especificar el path al iso
En el caso de usar LVM hay que tener cuidado porque en el servidor host se verán todos los "volume groups" y los "logical volumes" del dominio virtual. Para evitar esto se puede configurar LVM para que IGNORE totalmente ciertos "physical volumes" editando el archivo /etc/lvm/lvm.conf, y agregando:
filter = [ "r|^/dev/vg_virt/pv.*|" ]
Esto le dice a LVM que ignore cualquier "physical volume" que esté referenciado por algún dispositivo cuyo nombre comience con "/dev/vg_virt/pv". Para chequear que esto haya funcionado correctamente, ejecutamos:
pvscan -v
Los siguientes pasos a seguir podrían ser:
- instalar git y crear repo en /etc para tener historial de modificaciones
- configurar approx
- configurar serial console
- configurar virtio para discos/red
- configurar red usando bridge
- configurar autostart de dominios
Posteado por
Software and Motorcycles
a las
11:06
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
kvm,
libvirt,
ubuntu
jueves, 11 de junio de 2009
Configurando approx para cachear paquetes
En /etc/approx/approx.conf definir 2 servidores:
Y luego, hay que cambiar /etc/apt/sources.list de manera que quede:
Esta configuración es la que usé para un servidor Ubuntu 9.04
ubuntu-jaunty http://ar.archive.ubuntu.com/ubuntu/ ubuntu-jaunty-security http://security.ubuntu.com/ubuntu
Y luego, hay que cambiar /etc/apt/sources.list de manera que quede:
deb http://localhost:9999/ubuntu-jaunty jaunty main restricted deb http://localhost:9999/ubuntu-jaunty jaunty-updates main restricted deb http://localhost:9999/ubuntu-jaunty jaunty universe deb http://localhost:9999/ubuntu-jaunty jaunty-updates universe deb http://localhost:9999/ubuntu-jaunty jaunty multiverse deb http://localhost:9999/ubuntu-jaunty jaunty-updates multiverse deb http://localhost:9999/ubuntu-jaunty-security jaunty-security main restricted deb http://localhost:9999/ubuntu-jaunty-security jaunty-security universe deb http://localhost:9999/ubuntu-jaunty-security jaunty-security multiverse
Esta configuración es la que usé para un servidor Ubuntu 9.04
Posteado por
Software and Motorcycles
a las
12:07
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
apt,
ubuntu
miércoles, 3 de junio de 2009
Virtualización con KVM
Investigando para implementar KVM encontré varios artículos interesantes:
Guías
- Virtualization With KVM On Ubuntu 9.04
- Virtualization With KVM On Ubuntu 8.10
- Installing KVM Guests With virt-install On Ubuntu 8.10 Server (agregado el 5 de jun)
En sitio de KVM
- Setting guest network
- Setting up NAT with KVM in Ubuntu
En sitio de Ubuntu (administrada a través de libvirt)
- Installation
- Networking
- CreateGuests
- Managing
Y para gestionar el tráfico de red, además del clásico iptables, es interesante tener en cuenta ebtables.
Guías
- Virtualization With KVM On Ubuntu 9.04
- Virtualization With KVM On Ubuntu 8.10
- Installing KVM Guests With virt-install On Ubuntu 8.10 Server (agregado el 5 de jun)
En sitio de KVM
- Setting guest network
- Setting up NAT with KVM in Ubuntu
En sitio de Ubuntu (administrada a través de libvirt)
- Installation
- Networking
- CreateGuests
- Managing
Y para gestionar el tráfico de red, además del clásico iptables, es interesante tener en cuenta ebtables.
Posteado por
Software and Motorcycles
a las
16:11
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
kvm,
linux,
virtualizacion
equivs
Con equivs se pueden crear muy facilmente paquetes "vacíos" para Debian/Ubuntu/etc. Estos paquetes aunque no contengan ningún programa pueden ser de gran utilidad, al menos en 2 casos:
- How to install locally compiled packages: equivs
- Howto: create "configuration packages" with equivs
- para crear un paquete que dependa en otros paquetes: esto me es de gran ayuda para crear un paquete que dependa de todos los paquetes que generalmente instalo en los servidores Linux que administro (por ejemlpo, tcpdump, hdparm, smartctl, etc.)
- para crear un paquete que "provea" software que hemos instalado manualmente. Por ejemplo, si instalamos manualmente Java, pero queremos instalar Tomcat usando los paquetes que de nuestra distribución en uso, como Tomcat depende de Java, se intentará instalar un JRE o JDK de Java. Con equiv podemos crear un paquete que diga que provee Java, y así podremos instalar Tomcat sin instalar nuevamente otro JDK/JRE.
- How to install locally compiled packages: equivs
- Howto: create "configuration packages" with equivs
Posteado por
Software and Motorcycles
a las
15:58
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
debian,
equivs,
ubuntu
domingo, 3 de mayo de 2009
Cosas a hacer despues de instalar Ubuntu 9.04 Jaunty Jackalope
Excelente artículo! Tiene muchos consejos y referencias sobre cómo instalar algunas cosas que no vienen con Ubuntu.
http://ubuntulife.wordpress.com/2009/05/02/cosas-a-hacer-despues-de-instalar-ubuntu-904-jaunty-jackalope/
http://ubuntulife.wordpress.com/2009/05/02/cosas-a-hacer-despues-de-instalar-ubuntu-904-jaunty-jackalope/
Posteado por
Software and Motorcycles
a las
12:54
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
0
comentarios
Labels:
linux,
ubuntu
domingo, 8 de marzo de 2009
Parches para mejorar Django
Encontré algunos parches que estoy usando a diario para desarrollo y tests en Django, y me pareció interesante compartirlos. Además la idea es que sirvan de ejemplo de las cosas que se pueden encontrar en el sistema de "tickets" de Django, donde hay muchos parches para agregar funcionalidad, por ejemplo:
- Make Django's server optionally multithreaded
(específicamente: devserver_multithread_trunk_r9532.patch)
Esto permite que el servidor de desarrollo funcione con multiple threads. Sirve, por ejemplo, si queremos realizar un request al mismo servidor (por ejemplo, usando urllib2) desde una vista.
- Add live test server support to test framework
(específicamente: django_live_server_r8458.diff)
Permite iniciar un servidor http desde un testcase.
- Make Django's server optionally multithreaded
(específicamente: devserver_multithread_trunk_r9532.patch)
Esto permite que el servidor de desarrollo funcione con multiple threads. Sirve, por ejemplo, si queremos realizar un request al mismo servidor (por ejemplo, usando urllib2) desde una vista.
- Add live test server support to test framework
(específicamente: django_live_server_r8458.diff)
Permite iniciar un servidor http desde un testcase.
Posteado por
Software and Motorcycles
a las
14:12
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
1 comentarios
Labels:
django,
python
Suscribirse a:
Entradas (Atom)

