def test_default_env_path(self):
     if os.path.exists(DEFAULT_ENV_PATH):
         with open(DEFAULT_ENV_PATH, 'r') as default_env_file:
             env = Environ()
             self.assertEqual(str(env), default_env_file.read())
     else:
         with self.assertRaises(FileNotFoundError):
             env = Environ()
 def test_existing_nested_key(self):
     env = Environ(path=self.env_path)
     self.assertEqual(env("NESTED:NAME"), "test")
     self.assertEqual(env("NESTED:NAME", default=True), "test")
     self.assertEqual(env("NESTED:PASSWORD"), 123)
     self.assertEqual(env("NESTED:PASSWORD", default=True), 123)
     self.assertEqual(env("NESTED:LIST"), ["*"])
     self.assertEqual(env("NESTED:another:ONE"), 1.0)
     self.assertEqual(env("NESTED:another"), {"ONE": 1.0})
    def test_custom_separator(self):
        env = Environ(path=self.env_path, key_separator=">")
        with self.assertRaises(KeyError):
            env("NESTED>nope")
        with self.assertRaises(KeyError):
            env("NESTED:NAME")

        self.assertEqual(env("NESTED>nope", default='ok'), 'ok')
        self.assertEqual(env("NESTED>NAME", default=True), "test")
        self.assertEqual(env("NESTED>NAME"), "test")
 def test_existing_key(self):
     env = Environ(path=self.env_path)
     self.assertEqual(env("SECRET"), "secret")
     self.assertEqual(env("SECRET", default=True), "secret")
     self.assertEqual(env("NUMBER"), 3)
     self.assertEqual(env("NUMBER", default=True), 3)
     self.assertEqual(env("DEBUG"), True)
     self.assertEqual(env("WRONG"), False)
     self.assertEqual(env("NULL"), None)
     self.assertEqual(env("LIST"), ["*"])
     self.assertEqual(
         env("NESTED"), {
             "NAME": "test",
             "PASSWORD": 123,
             "LIST": ["*"],
             "another": {
                 "ONE": 1.0
             }
         })
Пример #5
0
# -*- coding: utf-8 -*-
import os
import json
from datetime import datetime

from scrapy.spiders import CrawlSpider
import requests
from json_environ import Environ

SPIDER_APP = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
ENV_PATH = os.path.join(SPIDER_APP, '..', '..', '.env.json')

env = Environ(path=ENV_PATH)

DEBUG = env("DEBUG", default=True)

PUBGSHOWCASE_DOMAIN = "https://pubgshowcase.com"
NEED_A_KEY = "need a key"
LI_INDEX_FOR_NEED_KEY = 3
DIV_INDEX_FOR_CRATE_IMG = 2
DIV_INDEX_FOR_CRATE_ID = 1
DIV_INDEX_FOR_ITEM_IMG = 3
DIV_INDEX_FOR_ITEM_DROP_RATE = 3
DIV_INDEX_FOR_ITEM_NAME = 1


class PubgshowcaseSpider(CrawlSpider):
    name = 'pubgshowcase'
    allowed_domains = ['pubgshowcase.com']
    start_urls = ['https://pubgshowcase.com/containers.php?id=All&type=Crates']
 def test_not_existing_nested_key_with_default(self):
     env = Environ(path=self.env_path)
     self.assertEqual(env("NESTED:nope", default='ok'), 'ok')
     self.assertEqual(env("nope:nope:nope", default='ok'), 'ok')
 def test_not_existing_nested_key(self):
     env = Environ(path=self.env_path)
     with self.assertRaises(KeyError):
         env("NESTED:nope")
     with self.assertRaises(KeyError):
         env("nope:nope")
 def test_not_existing_key_with_default(self):
     env = Environ(path=self.env_path)
     self.assertEqual(env("NOTHING", default=True), True)
 def test_custom_env_path(self):
     env = Environ(path=self.env_path)
     with open(self.env_path, 'r') as custom_env_file:
         self.assertEqual(str(env), custom_env_file.read())