Цитата:
Цитата:
Цитата:
в общем, порешил дело! отрефакторил функцию, вынесев ввод\вывод (HTTP запрос и запись в файл) в отдельные 2 функции: /** Скачает изображение по ссылке, сохранит в папку */ exports.downloadImage = function (imageURL) { var ext = path.extname(imageURL); var imageName = utils.getImageName(imageURL); var dest = path.join(imageSavePath, imageName); /** @type {Object} RESOLVE ARGUMENT */ var info = {imageURL: imageURL, dest: dest, ext: ext, imageName: imageName}; return exports.downloadImage.request(imageURL). then(function (buffer) { return exports.downloadImage.write(dest, buffer); }). return(info); }; // Скачает ответ по ссылке и вернёт результат в формате буфера exports.downloadImage.request = function (url) { return request({url: url, encoding: null}).get(1); }; // Запишет буфер buffer в файл dest exports.downloadImage.write = function (dest, buffer) { return fs.writeFileAsync(dest, buffer); }; ( request - это var request = Promise.promisify(require('request')); ) ну и в тестах сделал подмену на эти две функции (request и write) describe('downloadImage', function () { var original = {}; var url = 'http://i.imgur.com/emZNv0N.jpg'; var buffer = new Buffer('Hello'); var fakeRequest = sinon.stub().withArgs(url).returns(Promise.resolve(buffer)); var fakeWrite = sinon.stub().returns(Promise.resolve()); beforeEach(function () { original.request = utils.downloadImage.request; original.write = utils.downloadImage.write; utils.downloadImage.request = fakeRequest; }); afterEach(function () { utils.downloadImage.request = original.request; utils.downloadImage.write = original.write; }); it('should download image by url', function () { return utils. downloadImage('http://i.imgur.com/emZNv0N.jpg'). should.eventually. include({imageURL: 'http://i.imgur.com/emZNv0N.jpg', ext: '.jpg'}). and.property('imageName').match(/^product-image-/); }); }); как видите, сам тест (внутри 'it') остался таким же, как и поведение самой функции. успех! тестировать её помощников (request и write) не вижу смысла, т.к. это обёрнутые вызовы библиотечных\встроенных функций |
Немного угарнул
есть инструмент для оценки покрытия кода при тестах - istanbul на его странице есть обьяснение, почему именно такое имя у проекта Цитата:
Цитата:
|
у всех оракловые дистрибутивы качаются чересчур медленно или только у меня?
начинает шустро, потом скорость резко снижается, дистрибутивы немаленькие , а у них ещё хитрожопо так сделано, что непонятно как ссылку извлечь, чтобы хотя бы её в download master передать в связи с этим, пока не знаю, когда удастся развернуть тестовую среду, поэтому условно вопрос до понедельника (так как на работе уже всё развёрнуто :)): напомните, пожалуйста, можно ли в оракловой базе данных через табличку dba_users или каким-либо другим способом проверить может ли пользователь коннектиться к этой базе путём сравнения его логина и пароля? В самой dba_users пароль в поле PASSWORD хранится в зашифрованном виде, есть ли способы сделать корректное сравнение или нет, это я и хочу выяснить. может быть есть какие-то другие механизмы такой проверки, но они мне неизвестны в качестве сервера приложений - weblogic, там заведён data source, который создаёт пул соединений под определённым пользователем задача - проверить могут ли обратившиеся к серверу приложений другие пользователи, которые предоставляют свой логин и пароль, коннектиться к базе данных сейчас уже есть рабочий вариант, который кажется слишком топорным: сделать попытку соединения, если удастся, то может думается, что всё должно быть гораздо проще :yes: |
похоже ответ найден
http://laurentschneider.com/wordpres...spassword.html Цитата:
хз как лучше провернуть авторизацию в этом случае, не делая попытку прямого коннекта под пользователем: пользователи уже могут авторизоваться под собой, но ходим не под ними, а под определённой учётной записью с определёнными правами, которая доступна через data source на сервере приложений, на основе её возможностей и нужно проверить, может ли пользователь ходить в базу или нет кто-нибудь пытался когда-нибудь решить подобную задачу? |
Народ, нужна помощь с
Пробовал boot.ini редактировать , но фиг там... |
Цитата:
|
Цитата:
Нужна утилита которая установит нужный раздел системным так как загрузчик не там ищет винду |
Цитата:
Цитата:
начиная с 01BEh идут записи таблицы разделов, ставишь в нужной записи (например в байте 1BEh, что соответствует первому разделу) значение 80h, в начале других записей (01CEh, 01DEh, 01EEh), должны быть нули по 4 байта в конце каждой записи - смещение и количество секторов по lba, смотришь первую запись (если выбрал активным первый раздел), идёшь на адрес, соответствующий первому из этих 4 байтных чиcел (в hxd это ctrl+g, оно же меню Поиск - Перейти ) и смотришь, если там что-нибудь, по идее, именно с этого адреса должен начинаться код Цитата:
здесь есть полезные утилиты http://ntfs.com/ вот ещё один бесплатный hex-редактор http://mh-nexus.de/en/hxd/ ftp://wa651f3:anonymous@mh-nexus.de/HxDSetupPTB.zip http://mh-nexus.de/downloads/HxDSetupRU.zip |
Цитата:
http://thestarman.narod.ru/asm/mbr/Win2kmbr.htm но, по-моему, нужно просто забрать данные с диска и дать xp спокойно умереть :) |
bes, спасибо)
Цитата:
|
Часовой пояс GMT +3, время: 14:42. |