shove / tests / test_hstore.py

# -*- coding: utf-8 -*-
'''shove hstore tests.'''

import os
import time
import signal
import shutil
from tempfile import mkdtemp

from stuf.six import unittest
from subprocess32 import Popen  # @UnresolvedImport

from tests.test_store import Store


def setUpModule():
    temp = mkdtemp()
    os.chdir(temp)
    os.environ['PGDATABASE'] = 'shove'
    os.environ['PGDATA'] = temp
    process = Popen(
        ['initdb', '-A', 'trust', '-E', 'utf-8', '-D', temp],
        stdout=open('/dev/null', 'w'),
        stderr=open('/dev/null', 'w'),
        shell=True,
    )
    process.wait()
    unittest.TestCase.process = Popen(
        ['postgres', '-D', temp, '-h', 'localhost', '-p', '5432', '-F'],
        stdout=open('/dev/null', 'w'),
        stderr=open('/dev/null', 'w'),
        shell=True,
    )
    time.sleep(15.0)
    process = Popen(
        ['createdb', '-h', 'localhost', '-p', '5432', 'shove'],
        stdout=open('/dev/null', 'w'),
        stderr=open('/dev/null', 'w'),
        shell=True,
    )
    process.wait()


def tearDownModule():
    unittest.TestCase.process.send_signal(signal.SIGQUIT)
    unittest.TestCase.process.wait()
    temp = os.environ['PGDATA']
    shutil.rmtree(temp)
    del os.environ['PGDATA']


class TestHStoreStore(Store, unittest.TestCase):

    initstring = 'hstore://localhost:5432/shove'
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.